这是原因dyld`dyld_fatal_error,iOS上不兼容的API?(Which is th

2019-06-23 23:25发布

我移动我的项目到iOS 5 / ARC的一部分。 一个是给我的最老的项目(的iOS 4.2,ARMv6的支持的iPod Touch 2G)的:

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

就在启动图像之后,但在去主。 必须更新到iOS 5的一些LIB /代码,但哪一个? 可以使用比猜测更好的方法?

Answer 1:

跑到这个问题我试图重现这个项目使用Xcode4.3.2与SDK iOS5.1。 问题是,在Xcode4.3.2标准的项目模板配置的iOS5对,其中有较早的iOS版本不支持某些功能。 在我的情况下,GLKit框架拉进和不支持我的iPhone3G的运行iOS4.2的。 我得到的错误是跟你的一样:

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) 

该错误意味着GLKit框架没有在iOS的居民对在已安装应用程序的目标中。 该框架目前正由项目 - > BuildPhases-> LinkBinaryWithLibraries拉入版本。

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



Answer 2:

如果你去到控制台输出你会本身的错误,说明哪框架中缺少的设备,并导致了问题(如grundyoso他回答说)。

因此,为了解决这个问题,你可以去目标的常规选项卡,在嵌入式二进制文件部分添加缺少的框架。

这将框架复制到应用程序,所以它永远不会在任何设备上错过。



Answer 3:

我有同样的问题,当我运行我的iPhone 6S的应用程序,这是以前的工作出现这种情况..

只要到产品 - >清洗并重新运行一遍......

我希望这有帮助。



Answer 4:

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

这个问题的解决办法是:1.进入常规 - >嵌入式二进制文件。 2.在链接的框架和库添加相同的框架(在我的情况Reachability.framework)3.接着,添加的libc ++。TBD。

希望它能为你工作。



Answer 5:

我有同样的问题,我的Xcode 4.3(cocos3d为主)项目时,我在一个iPhone 3GS测试与iOS 4.2。

转到您的项目设置和更新:
目标 (S)| 摘要| 链接的框架和库| GLKit.framework可选
(而不是必需的 ),然后重新测试。

使得在此之后改变一切似乎是现在的持有我在一起的感觉真好。

祝好运!



Answer 6:

如果您使用的迦太基你可能忘记了一个框架添加到“复制框架”转到目标 - >构建阶段 - >复制框架 - >添加框架到列表中。



Answer 7:

它看起来像你的主要目标是链接到XCTest.framework但没有成功。

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

2)检查Images.xcassets和其他资源,在文件检查器(右图),看“目标会员”,请检查您是否选择测试的目标。

3)尝试搜索XCTest在您的项目,看看您所设置的。

要么

尝试删除测试



文章来源: Which is the cause for dyld`dyld_fatal_error, a incompatible api on iOS?