使用ad-hoc分发在设备上崩溃

ABe*_*its 8 xcode memory-management segmentation-fault ad-hoc-distribution ios

突然间,我通过Testflight和iTunes-sync进行的临时发布不再有效.使用ad-hoc构建配置分发的应用程序永远不会在设备上完全启动.它会立即崩溃并出现分段故障11.

这个问题的奇怪之处在于,在下面提到的所有设备上的调试版本可以完美地工作.这让我相信我的project.pbxproj中有些东西搞砸了.但是当我查看git-log时,我发现没有任何故障,唯一改变的是架构(ARCHS)和有效架构(VALID_ARCHS).

我是否正确地假设搞乱架构不应该在启动时但在构建过程中导致实际错误?

一些背景:
另外值得一提的是我安装了Xcode 4.4.1和4.5 GM,当我将GM升级到App Store中的GM时,它也删除了Xcode 4.4.1的备份.在那次打嗝之后我删除了所有版本的Xcode,重新启动并再次安装了4.4.1版(这是我可以为armv6构建的).

有关如何进行此调试的任何有用提示对我来说都非常有价值.
谢谢你的时间.<3

来自设备的控制台打印和崩溃日志:
- https://gist.github.com/3781018
如果需要,我可以添加更多日志.

当前环境:
- Xcode版本4.4.1(4F1003)
- Mac OS版本10.8.2

项目设置(pbxproj):
- https://gist.github.com/3780985

经过测试的设备:
- iPhone 3GS iOS 6
- iPhone 3G iOS 4.2.1
- iPad第二代iOS 5.1.1
- iPhone 4S iOS 5.1.1
- iPhone 4 iOS 6.0
- iPhone 4S iOS 6.0

更新
要继续进行调试,我就是这样做的:
1.跳过Testflight并使用老派的方式在iTunes中发布ad-hoc.失败 2.重新安装配置文件失败
2.在我的机器上创建一个新用户并重新安装Xcode.失败
3.从另一台机器构建.失败
4.将优化级别设置为:-O0 FAIL

尽管我确信没有任何代码被更改,但我没有看到其他合理的解释.所以我开始用git恢复项目,盯着我成功发布临时版本的那一天.令我恐惧的是,我注意到同样的分段错误正在跟随我的时间结构!
考虑到这一事实,只剩下一个动作; 一个非常强大的调试方式我称之为喷雾和祈祷.=)换句话说,我开始评论代码的各个部分,看看是否有任何不同,我完全惊讶它实际上做了.几个小时的禁用和启用我的应用程序的部分后,我找到了罪魁祸首:从未保留静态NSArray.我真正想到的是,自2010年以来,阵列的实际初始化看起来一直如此.那么为什么现在这突然导致内存错误呢?为什么静态分析仪没有警告我们呢?

我现在太精疲力竭地回答这些问题,我会尝试用更多细节更新问题,希望明天也能回答.
再一次,非常感谢迄今为止帮助过的人!<3

小智 0

看来问题的原因是并发问题:

Crashed Thread:  1
Run Code Online (Sandbox Code Playgroud)

在这种情况下,可能很难找到并解决问题的根源(http://en.wikipedia.org/wiki/Unusual_software_bug#Heisenbug)。

可能您正在对多个线程中的一个对象执行某些操作,而没有适当的同步;或者可能是您在一个线程(例如线程 0)中释放了对象并尝试从另一个线程(线程 1)访问它。