时间:2010-07-25 04:14:52

标签: iphone cocoa-touch xcode

2 个答案:

答案 0 :(得分:15)

我遇到了同样的问题 - 在调试模式下,应用程序在模拟器和设备上运行良好,但在发布模式下都没有(它会安装,但只显示启动画面)

  • Xcode 4.3.2
  • iOS部署目标4.3

我一直看到StackOverflow上的答案说这是一个内存管理问题,但这对我没有任何意义,因为调试版在加载到我的iPhone 4S时工作得很好。我还检查了Build Settings,看看这两种模式之间有什么不同,我跳过了最后一个重要的区别 - 编译器优化。

在构建设置中 - >在Apple LLVM编译器3.1下生成代码 - >优化级别,将版本设置从默认最快,最小[-Os] 更改为无[-O0] 。解决了我的问题。

在此博客文章中找到该解决方案:http://www.mindjuice.net/2011/11/30/how-to-fix-an-app-that-crashes-in-release-but-not-debug/

Apple Documentation有所帮助,但没有解释为什么做相反的修正事情:

  

由于优化过程中涉及的额外工作,任何类型的代码优化都会导致构建时间变慢。如果您的代码正在改变,就像在开发周期中那样,您不希望启用优化。但是,当您接近开发周期的末尾时,发布版本配置可以指示您的成品尺寸,因此最快,最小的选项是合适的。

     

无:编译器不会尝试优化代码。在开发期间,当您专注于解决逻辑错误并需要快速编译时,请使用此选项。请勿使用此选项运送可执行文件。

     

最快,最小:编译器执行通常不会增加代码大小的所有优化。这是发送代码的首选选项,因为它为您的可执行文件提供了更小的内存占用。

答案 1 :(得分:1)