应用程序运行良好的调试版本,但发布版本崩溃,可能的原因是什么?

tom*_*tom 6 iphone release ios automatic-ref-counting

我有Xcode 4.3.1,iOS 5.1,并已ARC打开用于构建我的应用程序.

现在,应用程序在调试版本中运行良好,但在发布版本上崩溃.差异的可能原因是什么?我完全依靠ARC资源管理.我查看了崩溃日志,它表明已经发布了引用的内存.在使用时,可能导致零售构建问题的常见缺陷是ARC什么?

以下是我从崩溃日志中获得的内容

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x6f636552
Crashed Thread:  0
Run Code Online (Sandbox Code Playgroud)

编辑

该应用程序的部署目标是iOS 5.0.我确实使用互联网连接,当前的崩溃发生在"渲染"从Web服务返回的数据以便显示在UITableViewController.整个应用程序正在使用ARC,除了我ARC关闭的第三方的一些源文件.

Dan*_*dré 0

我可能没有答案,但我将列出一些预感供您尝试:

  • 确保您没有将对象传递给没有“句柄”的方法。例如,将处理程序类实例传递给需要委托的方法。该方法不会保留该实例,因此它甚至在调用该方法之前就被释放了。
  • 检查您的预编译器宏,确保它们对于 DEBUG 和 RELEASE 版本都是安全的。一个很好的例子是if在发布版本中删除的宏上有一个语句,并且该if语句不会用花括号覆盖它。
  • 如果您依赖编译器定义来启用/禁用代码的某些部分(通过使用#if条件),请确保在构建配置中设置了所需的部分。

如果我能想到更多,我会尝试添加它们。