Makefile 怎么做到 ARCHS=arm64与Deployment Target 5.0 共存

我在github上搜索的是否发现很多theos 的tweak 的插件在配置的makefile里面
能配成这样:

THEOS_DEVICE_IP = 192.168.1.11

TARGET := iphone:7.0:2.0
ARCHS := armv6 arm64

这里是原文Makefile

我每次都收到:
error: invalid deployment target ‘4.3.0’ for architecture ‘arm64’ (requires ‘6.0.0’ or later)

请问,这是需要做什么额外配置么

  1. 要让arm64和iOS 5.0共存,应写成
TARGET = iphone:7.0:5.0
  1. 书的第三章“指定SDK版本”部分曾提到,“6.0以上版本的SDK已不再支持4.3版本以下的iOS或armv6架构”。所以你的Target直接定到2.0 ~ 7.0之间,这种Makefile写法在DHowett的Theos里是不支持的,但是rpetrich的Theos fork对这部分做了处理,支持这种写法。因为书上推荐的是DHowett的Theos,所以这种方法会报错。如果要使用DHowett的Theos达到使dylib支持2.0 ~ 7.0的目的,可以分别使用低版本SDK生成一个支持2.0 ~ 4.x的dylib和使用高版本SDK生成一个支持5.0 ~ 7.0的dylib,然后使用lipo命令把它们揉成一个fatter binary。但是目前绝大多数用户都已经使用的5.0以上iOS,因此除非追求完美(像rpetrich那样),就可以考虑一下dylib的最低兼容版本是不是可以定为iOS 5了(像我一样)。

多谢多谢,第二条完结解答了我的疑惑,但是我个人的测试结果是
ARCHS=armv7 arm64
TARGET=iphone:7.0:5.0
这么配置也会报错,因为arm64 指定要求Deployment 是6.0以上,也就是必须配成
TARGET=iphone:7.0:6.0
iOS 5.0的系统是支持不了的

我在写 按照书上的示例写第一个tweak的时候,折腾了半天最后还是把系统显示为6.0以上了

不应该啊,我一直都是写的7.0:5.0啊!你有SDK5.x吧?

我是直接装的xcode5 然后,手动复制了5.1 和6.1的SDK进去,然后就没有在设置什么了,是不是这一步做的不对,还得在哪儿配置一下?

不需要配置了,这就够了。最新的错误是什么?你这里都没有提到4.3,怎么会报
error: invalid deployment target ‘4.3.0’ for architecture ‘arm64’ (requires ‘6.0.0’ or later)

我的截图

奇怪了,我的机子上没这问题啊!你升级到最新版的Theos试试,如果还有这问题的话我问问DHowett

git 更新了,还是这个问题

测试一下回复

你把工程打个包发上来,我在我这里试试看