Automatic reference counting 访问@property表单ARC静态库时,ARC应用程序崩溃

Automatic reference counting 访问@property表单ARC静态库时,ARC应用程序崩溃,automatic-reference-counting,iphone,ios5,automatic-ref-counting,static-libraries,ios6,Automatic Reference Counting,Iphone,Ios5,Automatic Ref Counting,Static Libraries,Ios6,我有一个ARC()应用程序,它构建了一个静态库(也称为ARC)。应用程序将正常启动,但当执行读取或写入静态库中@属性的操作时,应用程序将因以下错误而崩溃: dyld: lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic  Referenced from: /var/mobile/Applications/0E7ADBB4-FFE5-4CEB-B418-8A35A92E99D4/MyApp.app/M

我有一个ARC()应用程序,它构建了一个静态库(也称为ARC)。应用程序将正常启动,但当执行读取或写入静态库中@属性的操作时,应用程序将因以下错误而崩溃:

dyld: lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic
  Referenced from: /var/mobile/Applications/0E7ADBB4-FFE5-4CEB-B418-8A35A92E99D4/MyApp.app/MyApp
  Expected in: /usr/lib/libobjc.A.dylib

dyld: Symbol not found: _objc_setProperty_nonatomic
  Referenced from: /var/mobile/Applications/0E7ADBB4-FFE5-4CEB-B418-8A35A92E99D4/MyApp.app/MyApp
  Expected in: /usr/lib/libobjc.A.dylib

所有的建议都是关于将非ARC库链接到ARC应用程序(反之亦然)。但是这两个都是ARC。

应用程序的
基本SDK
被设置为iOS 6,而
iOS部署目标
被设置为iOS 5.0,但是对于静态库,
基本SDK
iOS部署目标
都被设置为iOS 6


确保应用程序和库中的
基本SDK
iOS部署目标
匹配解决了此问题。

使所有部分匹配的好处。除非您计划在可用时支持iOS 6功能(并承担大量测试难题和所需的额外功能检测代码),否则我还建议将基本SDK和iOS部署目标设置为相同的设置(本例中为iOS 5)。尽管苹果官方声明你应该始终链接到最新的SDK,WWDC的Xcode团队一致认为,这种方法非常脆弱,因为当您错误地使用不受支持的功能时,编译器不会向您发出警告。super-我的许多静态库中的一个有这个问题-现在就解决了-谢谢。如何更改静态库的
基本SDK
iOS部署目标?@TomMedley这仅适用于您的库是一个单独的项目并且与应用程序同时生成的情况。@rjstelling是的,我很确定我遇到了一个问题。