我面临着相当“神秘”的问题。我的应用程序在运行iOS 4.x的设备上的所有构建配置下均可正常运行,但在启动后立即运行iOS 3.x的iPhone上会崩溃,但仅在使用Release配置进行编译时会崩溃。但是,使用Debug config可以毫无问题地运行。
我已经花了很多时间调查这种情况的可能原因,但是到目前为止,我并不幸运。我正在使用XCode 3.2.4和基本SDK iOS 4.1,并使用LLVM GCC编译器。根据崩溃日志,应用程序在applicationDidFinishLaunching:方法实现的第一行代码上崩溃,其中仅调用简单的[[SomeObject alloc] init],报告EXC_BAD_ACCES,指示alloc方法未正确分配实例(?) 。
当我切换到GCC 4.2编译器时,崩溃日志会完全报告崩溃源的其他位置,但是我认为这是完全相同的...
我想我缺少一些编译器或链接器标志,但是找不到。我已经尝试了到目前为止找到的所有建议的解决方案,但是没有任何帮助。
谢谢你的帮助。
最佳答案
您是否将LLVM编译器用于发行版本?以我的经验,LLVM编译器将弱链接API调用。只要它从未执行过4.x API调用,这将允许3.x应用程序运行。当动态加载程序尝试解析4.x API时,使用GCC编译的3.x应用将在启动时崩溃。
关于iphone - 使用发布版本配置进行编译时,应用程序立即在iOS 3.x上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3786375/