我们有一个使用静态Lib构建的应用程序,我们也正在构建用于分发。 App和Lib在Xcode调试器中运行正常,或者在Xcode调试会话中加载到设备上。一旦我们在设备上放置Ad Hoc Archive构建,App就会崩溃。控制台日志语句表明它在Lib代码中崩溃,但崩溃报告没有象征Lib代码。
在控制台上看到2个可能有用的例外,但到目前为止还没有在网上做任何事情,这对此有很大帮助:
Application 'x' exited abnormally with signal 12: Bad system call: 12 (mostly)
Application 'x' exited abnormally with signal 12: Bad system call: 11 (rarely)
我们在其他地方看到了带有Recursion的静态库存在问题。但是我们的Lib没有任何递归。
难倒,需要更多的想法。
答案 0 :(得分:14)
在桌子上撞了4天后想出来了。。我们不确切地知道它为什么会起作用,但确实如此。如果它对其他人有帮助,这里是为我们解决它的设置。在静态库项目的构建设置的“部署”部分中设置这些:
SET "STRIP LINKED PRODUCT" (STRIP_INSTALLED_PRODUCT) = NO
SET "STRIP STYLE" = DEBUGGING SYMBOLS.
我们通过反复试验发现了这一点,但现在注意到在线重新设置用于构建iOS静态库的Xcode项目的一些讨论使用此设置。没有讨论为什么,但确实如此。
如果有人对这些lib设置为什么修复它有任何想法,你可能想在这里评论它。
答案 1 :(得分:1)
我有类似的问题并尝试更改项目构建设置,但它对我不起作用。最终通过更改发行版的编译器优化级别设置解决了我的问题:
在Build Settings中,转到LLVM编译器4.2 - 代码生成部分,查找优化级别选项并将Release设置从Fastest,Smallest [-Os]更改为None [-O0]。
希望这有帮助!
答案 2 :(得分:0)
AdHoc(发布)和调试之间的构建设置不同的可能性非常高。 您是否仔细检查了所有构建设置值? 特别要注意ARC(自动参考计数)设置。
答案 3 :(得分:0)
通过加载Xcode调试器调试生成版本(可能设置为Release Build,其优化和代码生成设置与您当前正在测试的Debug版本不同)。