一些背景知识-我使用了http://db-in.com/blog/2011/07/universal-framework-iphone-ios-2-0/上Diney的指南构建了一个自定义框架
它针对armv6/armv7构建,基于ARC的框架,其解聚目标为4.3。
当我将结果框架放在5.0项目中时,它工作得很好,但是当我将其放入4.3项目中(ARC或非弧线,没关系)时,我得到了以下内容,而这些内容我并不是很了解...
我也尝试过手动添加libarclite.a,但是它没有任何改变。
希望对此有所帮助。谢谢你
最佳答案
我在同一个问题上挣扎。解决方法是将框架的部署目标设置为iOS5(不过,请检查是否不会造成其他问题)。
然后,如果定位到iOS4,则必须在主项目中使用ARC,否则libarclite将丢失。我的解决方案是提供两个框架,具体取决于它们是否使用ARC。
这是指向Apple开发论坛的两个链接,其中包含更多信息:
https://devforums.apple.com/message/539344#539344
https://devforums.apple.com/message/588316#588316
更新:
有个更好的方法。只需使用iOS5最低目标构建静态库,然后手动添加/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/arc/libarclite_iphoneos.a(和/Developer/usr/lib/arc/libarclite_iphonesimulator.a)项目未使用ARC,并且需要iOS4支持。
更新2:实际上,只需使用链接器标志-fobjc-arc;如果库中还没有libarclite,它将链接libarclite。最好的解决方案。
关于ios - ld : duplicate symbol _objc_retainedObject on iOS 4. 3,但不是在iOS 5.0上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8375233/