它是为armv6 / armv7构建的,它是一个基于ARC的框架,编译时具有4.3的depolyment目标.
当我将结果框架放在一个5.0项目中,它工作得很好,但是当我把它放在4.3项目(ARC或非arc,不重要)时,我得到以下我不能真正理解…
我也试过手动添加libarclite.a,但没有改变任何东西.
ld: duplicate symbol _objc_retainedObject in /Users/freak4pc/Project/MyFramework.framework/MyFramework and /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/arc/libarclite_iphoneos.a(arclite.o) for architecture armv7
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang Failed with exit code 1
感谢任何帮助. ThanksShai
解决方法
那么你必须在主程序中使用ARC来定位iOS4,否则将丢失libarclite.我的解决方案将是提供两个框架,这取决于它们是否使用ARC.
这里有两个链接到苹果的开发论坛,一点点更多的信息:
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与库,如果它还没有在那里.最佳解决方案