我面临着相当“神秘”的问题。我的应用程序适用于运行iOS 4.x的设备上的所有构建配置,但在启动后立即在运行iOS 3.x的iPhone上崩溃,但仅在使用Release配置进行编译时崩溃。使用Debug配置,它运行时没有任何问题。
我花了很多时间调查可能的原因,但到目前为止并不幸运。我正在使用XCode 3.2.4和基本SDK iOS 4.1,使用LLVM GCC编译器。根据崩溃日志,应用程序在applicationDidFinishLaunching:方法实现中的第一行代码崩溃,其中只调用简单的[[SomeObject alloc] init],报告EXC_BAD_ACCES,表明alloc方法没有正确分配实例(?)
当我切换到GCC 4.2编译器时,崩溃日志完全报告崩溃原因的其他地方,但我认为这是完全相同的......
我想我错过了一些编译器或链接器标志左右,但无法找出哪个。我已经尝试了迄今为止我发现的所有建议的解决方案,但没有任何帮助。
感谢您的帮助。
答案 0 :(得分:1)
您是否在发布版本中使用LLVM编译器?根据我的经验,LLVM编译器将弱链接API调用。这允许3.x应用程序运行,即使它具有4.x API调用,只要这些调用永远不会执行。当动态加载程序尝试解析4.x API时,使用GCC编译的应用程序将在启动时崩溃。