之前发帖求问过,但是没找到答案,今天有了一点结论,求指正
我的黑苹果上面是直接装的xcode 5.0,没有之前的版本。然后手动考入了iPhone5.1SDK和 iPhone6.1SDK,当配置里arm64 和 deplyment 3.0共存的时候,会报以下错误:
所以,创建工程的时候,我一般都得把配置改成deployment 6.0以上的才能编译通过:
今天开始学习rpetrich大大的AppList工程的时候,发现applist 的Makefile里面 arm64 跟 deployment3.0是并存的。
AppList_INSTALL_PATH = /System/Library/PreferenceBundles
TARGET_IPHONEOS_DEPLOYMENT_VERSION := 3.0
IPHONE_ARCHS = armv6 armv7 arm64
SDKVERSION_armv6 = 5.1
INCLUDE_SDKVERSION_armv6 = 7.0
然后在我这里苦逼的编译不过,折腾半天终于可以编译过了,最后的方案是取消arm64的选项,因为delpyment_version必须是3.0不然,SBApplication.h里就会有几个函数不被编译进来,在这个过程中我发先一个配置项:
THEOS_PLATFORM_SDK_ROOT_armv6 = /Applications/Xcode_Legacy.app/Contents/Developer
因为我的机器上只装了一个Xcode5.0,所有Xcode_Legacy.app是不存在的,这里会导致编译不过,我版Xcode_Legacy.app改成Xcode.app之后倒是编译正常了,因为我已经把5.1的sdk和6.1的sdk都复制到了当前的Xcode目录.
不过上面的配置项给了我个提示,是不是就是因为我们有装4.x版本的Xcode,导致arm64 跟3.0没法共存的?是不是编译3.0相关的程序是Xcode_Legacy.app里面才有的?
不知道我的猜想对不对?我打算去装一个4.x版的xcode,并且重命名成Xcode_Legacy.app试试