我最近将我的代码库升级为使用iOS6 Base SDK - 我使用的是XCode 4.5。我只需要将dylibxml2.2.3.7更改为dylibxml2.2。它在6.0模拟器上运行良好。我正在使用像GoogleAnalytics,Three20这样的库。
但是当我在iOS 5(iPhone4)上运行代码时,它会在启动时崩溃并出现以下错误:
我无法分辨它到底崩溃的原因,因为我看到的只是崩溃时的机器代码
dyld:懒惰符号绑定失败:未找到符号:_objc_setProperty_nonatomic
引用自:/ Users // Library / Application Support / iPhone Simulator / 5.0 / Applications //
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/Foundation.framework/Foundation
答案 0 :(得分:29)
在构建我自己的lib并在我的示例代码中运行它时,我也遇到了同样的错误。仔细阅读构建日志后,我现在找出原因。
我将部署目标设置为iOS 3.0,但最新的Xcode仅支持iOS 4.3及更高版本。因此,编译器会自动将部署目标设置为iOS 6.0,只要项目在iOS 6.0下运行,就会生成错误。我通过在我的lib项目中将部署目标设置为iOS 4.3来修复它。
答案 1 :(得分:0)
仅在changng SDK部署目标中存在问题。我刚创建了一个基于标签的应用程序没有对任何文件进行任何更改。在ios 6模拟器上正常运行,但如果我改变了 部署目标为5并在ios 5模拟器上运行,该模拟器正在创建异常(信号SIGABRT)。 Xcode版本4.5和默认部署目标SDK 6.0。
答案 2 :(得分:0)
或者可能是您使用的库是使用比项目库SDK更高的基础SDK编译的。