iOS应用程序仅在使用-Os compilator标志时崩溃(发布版本)

时间:2015-06-24 08:13:28

标签: ios objective-c xcode compilation compiler-optimization

我目前正在使用XCode 6.3.2编译iOS应用程序 在调试模式下编译时,它在运行的每个设备上都能正常工作。 在发布模式下编译时,它崩溃但仅在iPad Air 2设备上崩溃(该应用程序仅限iOS 8+)。

经过大量的实验和试验和错误后,我发现将编译器标志从-Os切换到-O0会使应用程序在任何设备上都能正常运行。它看起来像一个编译器错误,但我很难弄清楚为什么会发生这种情况。崩溃日志是没有用的,因为它们没有显示有关应用程序代码的任何信息,因为它们报告了Apple框架中的崩溃。在这一点上,我甚至不确定崩溃报告是否可靠。 这之前发生过这件事吗?

这是崩溃日志(由于字符限制而无法粘贴): https://gist.github.com/tanis2000/dc734a093fa85b9a363b

更新

这是另一个没有Crashlytics的崩溃转储: https://gist.github.com/tanis2000/0280059f2cb8709b18b2

该应用程序死于

2015-06-24 10:35:44.723 SwagUp[1013:108392] -[LSApplicationProxy isDescendantOfView:]: unrecognized selector sent to instance 0x155e67f90

这看起来像是在不同设备上解决AutoLayout约束的方式存在问题。

更新2

事实证明,崩溃的原因是UIVut内部的UIButton(在其他UIViews内部等等)本身没有任何约束。 Interface Builder没有警告缺少的约束是很奇怪的。我仍然不明白为什么没有优化它仍然保持正常工作。

0 个答案:

没有答案