18

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

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

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

4

7 回答 7

25

我自己尝试使用带有 SDK iOS5.1 的 Xcode4.3.2重现这个项目时遇到了这个问题。问题是 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 框架和所有引用它的代码。然后构建成功并在目标设备上运行。希望这可以帮助!

于 2012-06-02T17:20:01.143 回答
5

如果您转到控制台输出,您会看到一个错误,告诉您设备中缺少哪个框架并导致问题(就像 grundyso 在他的回答中所说的那样)。

因此,为了解决此问题,您可以转到目标的General选项卡并在Embedded Binaries部分添加缺少的框架。

这会将框架复制到应用程序,因此在任何设备上都不会丢失。

于 2015-12-23T23:28:05.227 回答
2

我遇到了同样的问题,当我在我的 iPhone 6s 上运行该应用程序时发生了这种情况,并且它以前可以工作..

只需转到 Product -> Clean 并再次运行它...

我希望这有帮助。

于 2015-10-17T14:06:45.890 回答
2

我对 Reachability.framework 有同样的问题。它在 iPhone 5 上运行良好,但在为 iPhone 7S Plus 运行相同的代码时,它显示错误。

此问题的解决方案是: 1. 转到 General -> Embedded Binaries。2. 添加相同的框架(在我的例子中是 Reachability.framework) 3. 然后,在 Linked Frameworks and Libraries 中添加 libc++.tbd。

希望它对你有用。

于 2016-09-23T06:59:03.623 回答
1

当我在装有 iOS 4.2 的 iPhone 3GS 上进行测试时,我的xCode 4.3(基于 cocos3d)项目也遇到了同样的问题。

转到您的项目设置并更新:
Target (s) | 总结 | 链接的框架和库 | GLKit.frameworkOptional
(而不是Required),然后再次测试。

进行此更改后,现在对我来说一切似乎都很好。

祝你好运!

于 2012-06-15T15:03:06.957 回答
0

如果您使用 Carthage,您可能忘记将框架添加到“复制框架”转到目标 -> 构建阶段 -> 复制框架 -> 将框架添加到列表中。

于 2016-04-05T01:38:59.193 回答
-1

看起来您的主要目标正在链接到 XCTest.framework 但失败了。

1) 转到项目设置 -> 2) 转到您的应用程序主要目标 -> 其他链接器标志 3) 删除“-framework XCTest” 4) 确保您的测试目标的“其他链接器标志”字段仍然包含“-framework XCTest '

2)检查Images.xcassets和其他资源,在文件检查器(右面板)中,查看“目标成员资格”,检查是否选择了测试目标。

3)尝试在您的项目中搜索 XCTest 并查看您设置的内容。

或者

尝试删除测试

于 2015-08-15T11:19:41.873 回答