我正在将部分项目移至iOS 5 / ARC。最古老的项目之一(iOS 4.2,支持iPod Touch 2g的armv6)给我:

dyld`dyld_fatal_error:
0x8feb1070:  int3
0x8feb1071:  nop

在启动镜像之后,但在进入主镜像之前。必须将某些库/代码更新到iOS 5,但是哪一个?有可能使用比猜测更好的方法吗?

最佳答案

我自己遇到了这个问题,尝试使用Xcode4.3.2和SDK iOS5.1来重现this project。问题是Xcode4.3.2上的标准项目模板为iOS5配置,该模板具有某些iOS早期版本不支持的功能。就我而言,GLKit框架已插入,运行iOS4.2的iPhone3G不支持该框架。我遇到的错误就像您一样:

dyld`dyld_fatal_error:
0x2fe01080:  trap
0x2fe01084:  mov    r0, r0

仔细查看控制台输出后,您可以查看导致应用程序崩溃的原因:
dyld: Library not loaded: /System/Library/Frameworks/GLKit.framework/GLKit
Referenced from: /var/mobile/Applications/A60A53B1-F87D-467D-BB0B-82C603049202/HiJackInTheBox.app/HiJackInTheBox
  Reason: image not found
(lldb)

该错误意味着在安装该应用程序的目标上的iOS居民中找不到GLKit框架。该框架被拉入Project-> BuildPhases-> LinkBinaryWithLibraries下的构建中。

因此,要纠正此问题,我需要删除GLKit框架和所有引用该框架的代码。然后,构建成功并在目标设备上运行。希望这可以帮助!

09-27 12:39