一些背景--我在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手动,但它没有改变任何东西。
/Users/freak4pc/Project/MyFramework.framework/MyFramework和/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/arc/libarclite_iphoneos.a(arclite.o) for architecture armv7命令/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang中的重复符号_objc_retainedObject失败,退出代码1
希望能在这方面提供任何帮助。
谢谢
沙依
发布于 2011-12-06 18:58:42
我也在为同样的问题而挣扎。解决方法是将框架的部署目标设置为iOS5 (检查这是否没有造成其他问题)。
如果目标是iOS4,则必须在主项目中使用ARC,否则libarclite将丢失。我的解决方案是提供两个框架,取决于它们是否使用ARC。
以下是苹果开发论坛的两个链接,提供更多信息:https://devforums.apple.com/message/539344#539344
https://devforums.apple.com/message/588316#588316
更新:有一个更好的方法。只需构建带有/Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/arc/libarclite_iphoneos.a最小目标的静态库,并手动添加/Developer/usr/lib/arc/libarclite_iphonesimulator.a) (如果您的项目不使用iOS5并需要iOS5 4支持的话)。
更新2:实际上,只需使用链接标志-fobjc-弧线;这将链接libarclite与库,如果它还没有在那里。最好的解决办法。
发布于 2011-12-07 12:49:22
哇,那是一次艰难的旅程,但我终于解决了!
最后的想法是@steipete的评论,这是一个复杂的情况,所以我会尝试解释给任何可能已经跨越这个问题的人。
NSJSONSerialization,否则将返回到任何导入的JSON库,如JSONKit。NSJSONSerialization,这将导致4.3个项目出现异常,这意味着您必须手动查找编译方向并在编译之前删除对NSJSONSerialization的调用,因此它将自动返回到与4.3兼容的库(在我的例子中是JSONKit)。该编译条件在AFHTTPClient.m和AFJSONRequestOpere.m上找到(例如,#if __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_4_3 || __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_6))。
希望这能帮助像我这样在这方面挣扎几天的其他人:)
沙伊。
https://stackoverflow.com/questions/8375233
复制相似问题