XCode 5 GM链接器错误:在体系结构i386的函数中有太多紧凑的展开信息

时间:2013-09-11 02:20:34

标签: ios objective-c xcode linker

我们刚刚更新到XCode 5 GM,并且在DP 5下构建正常的项目(仅针对iOS 7的iPhone)现在提供错误:

ld: in /Users/dan/Documents/Projects/ImageProApp/Pods/SparkInspector/SparkInspector.framework/SparkInspector(ExplorerViewState.o), too many compact unwind infos in function anon for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我们正在使用CocoaPods来包含几个组件,CocoaAsyncSocket,CocoaLumberack,Spark Inspector和Reachability。我的猜测是我们要删除Spark Inspector,这个错误只会引用另一个组件。

有人可以推荐修复吗?告诉我使用非紧凑的展开信息的编译器/链接器标志是什么?

谢谢,

4 个答案:

答案 0 :(得分:33)

更新: 谷歌发布了谷歌分析库的修复程序 https://code.google.com/p/analytics-issues/issues/detail?id=338

请参阅此处的v3.01版: https://developers.google.com/analytics/devguides/collection/ios/resources

FWIW,使用Google Analytics库时,只有在部署目标设置为7.0时才会出现链接错误。如果将部署目标放到6.1,例如链接工作没有错误。

作为参考,对于Google Ananlytics,我在Google's bug tracker发布了一个问题。

答案 1 :(得分:7)

解决方法:为设备构建。

不是一个修复,而是尝试为设备而不是模拟器构建应用程序。可能与64位的引入有关。

我可以归档我的应用程序,但是当我尝试构建/运行模拟器时,它无法链接到您收到的同一错误。

要说清楚,我也在使用cocoapods。

答案 2 :(得分:7)

将“iOS部署目标更改为低于”iOS 7.0“的内容

“项目” - >构建设置 - >部署

为我工作, 我想这与用于构建外部lib的配置有关。 当我加入Jot Touch SDK

时,我只面对模拟器的问题

答案 3 :(得分:1)

这个答案可能会有点晚,但我对第三方框架也有同样的问题。 出于某种原因,我们已将-all_load标志添加到构建设置中,但是当我删除它时,我们能够构建项目。

所以转到:

项目 - >构建设置 - >其他链接器标志

并删除-all_load标志。

希望这有帮助。