我刚刚下载了Xcode 6 beta 4,我的swift项目编译时没有任何错误,但在它到达我的代码之前,我在调用堆栈的开头就得到了一个dyld_fatal_error。
和一些带有nop指令的汇编代码中的断点
我得到的控制台错误是
dyld: lazy symbol binding failed: Symbol not found: __TFSsa6C_ARGVGVSs13UnsafePointerGS_VSs4Int8__
Referenced from: /Users/username/Library/Developer/Xcode/DerivedData/Sudoku-dhrdonaeqzsgcvewndimxbbsltnc/Build/Products/Debug/Sudoku.app/Contents/MacOS/Sudoku
Expected in: /Users/username/Library/Developer/Xcode/DerivedData/Sudoku-dhrdonaeqzsgcvewndimxbbsltnc/Build/Products/Debug/Sudoku.app/Contents/MacOS/../Frameworks/libswift_stdlib_core.dylib
dyld: Symbol not found: __TFSsa6C_ARGVGVSs13UnsafePointerGS_VSs4Int8__
Referenced from: /Users/username/Library/Developer/Xcode/DerivedData/Sudoku-dhrdonaeqzsgcvewndimxbbsltnc/Build/Products/Debug/Sudoku.app/Contents/MacOS/Sudoku
Expected in: /Users/username/Library/Developer/Xcode/DerivedData/Sudoku-dhrdonaeqzsgcvewndimxbbsltnc/Build/Products/Debug/Sudoku.app/Contents/MacOS/../Frameworks/libswift_stdlib_core.dylib
正因为如此,您知道该项目仍在编译,并且在Xcode 6 beta 3中运行良好。
答案 0 :(得分:75)
这样的极其奇怪的问题可以通过Clean& amp;构建(或者重新启动Xcode)。您也可以考虑从〜/ Library / Developer / Xcode / DerivedData中删除相关文件夹。
答案 1 :(得分:25)
肯定这个错误非常无益:
dyld`dyld_fatal_error:
-> 0x1200ad088 <+0>: brk #0x3
这当然只发生在设备上,不是模拟器。始终在设备上进行测试的另一个好理由。
无论如何,遇到同样的问题,干净的对我来说没有用。删除DerivedData也没有帮助。还尝试同步部署目标版本。这似乎没有任何区别,但无论如何我都做了。
解决方案是将任何动态框架添加到Target - &gt;下的嵌入式二进制文件设置中。一般:
现在我知道其他答案中已经提到了。但是,如果我可以补充说任何依赖动态框架也必须包括在内。
例如,如果你有一个依赖于动态框架 B 的动态框架 A ,那么 A 是必要的>和 B 已添加到嵌入式二进制文件中。
请注意,如果动态框架 A 依赖于任何静态库或框架,您几乎肯定会被迫创建 A 作为包含依赖二进制文件的伞形框架
其他考虑因素可能重要,也可能不重要。然而,亲自为我带来了成功;
检查器中每个动态库的路径设置为&#34;相对
到集团&#34;。在屏幕上方抓住嵌入式二进制文件的路径
似乎正确终止于"build/Debug-iphoneos"
。
动态框架位于嵌入式二进制文件部分。静态库和 作为框架包装的静态库位于Linked Frameworks中 和图书馆。 两个部分均未显示任何内容。
在设置这个时,XCode表现得很奇怪。以下证明是成功的:
答案 2 :(得分:17)
我在尝试将自定义iOS框架链接到我的项目时遇到了这个问题,因此对于那些遇到此问题的人来说,它与复制文件构建阶段有关。
我认为无法找到文件时会出现此错误。因此,在项目的相应目标中创建复制文件构建阶段。然后将文件(在我的情况下是自定义框架)添加到此阶段(如果它是框架,请确保选择&#39;框架&#39;目的地)。
答案 3 :(得分:9)
清理,重新启动,删除等对我没有用。
我有一个项目包含另一个项目。当我在iOS 7上运行项目并且在代码中访问包含项目时,应用程序停在以下行:
多天后,我看到容器项目的部署目标是 7.0 (如下所示)。
另一方面,包含项目的部署目标为 8.1 (如下所示)。
将包含的项目的部署目标更改为7.0解决了我的问题!
该项目在iOS 8设备上运行良好。
答案 4 :(得分:7)
我最近遇到过这个问题,问题在于我在同一个项目中添加了一个未列入“嵌入式二进制文件”的图书馆。来自&#39; General&#39;部分。
注意:如果您在嵌入式二进制文件中添加它,它也会添加到链接库部分,可能会添加相同的两次。
答案 5 :(得分:5)
清洁和建立不起作用。您需要删除〜/ Library / Caches / com.apple.dt.Xcode *目录中的缓存。删除这些并重建。
每次升级测试版时都这样做。
答案 6 :(得分:4)
我也遇到了同样的问题,并尝试了上面给出的所有解决方案而没有任何运气。
然后我做了什么来解决我真的没有太多我的想法。因此,在钥匙串访问系统组中有Certificated称为“苹果全球开发者关系证书颁发机构”,由于某些配置文件和证书问题,我随机标记此证书“始终信任”来自“使用系统默认值”。所以这导致了这次“dyld_fatal_error
”崩溃。当我将其恢复为“使用系统默认值”时崩溃得到解决。
所以,如果您尝试了所有可能的选项来解决此崩溃并且尚未成功,请尝试这一点。它帮助了我,也可以帮助你。
找到关于此证书的this。
答案 7 :(得分:1)
这个问题仍然出现在Xcode 7中,并且可能由于各种原因(似乎)发生。就我而言,iOS应用程序包含一个框架:
答案是不使用链接库,而是使用通用下的嵌入式二进制文件。
答案 8 :(得分:1)
将非系统框架添加到&#34;嵌入式二进制文件&#34;在主项目的常规选项卡中为我工作。
正如bitwit所说,这也会将你的框架添加到&#34;链接框架和库#34;所以请注意那些重复项。
使用Xcode 7.3进行测试。
答案 9 :(得分:1)
Xcode 8.
清洁和构建不起作用。我删除了缓存,删除了Derived数据。之后,我的pods配置被破坏了,所以我需要再次安装pod。 Pods Target配置设置为非常古老的Valid架构。设置为armv7和armv7s,编译没问题
答案 10 :(得分:0)
如果您的方案在实际设备上运行时在诊断中启用了“Guard Edges”,则会得到此信息。 “Guard Edges”仅适用于模拟器。
答案 11 :(得分:0)
当我更新部署目标iOS 8并将use_frameworks!
添加到Podfile
时,我正在使用cocoapods并遇到此问题。我可以通过在Podfile
添加以下行来修复它:
link_with 'TargetName1', 'TargetName2', etc.
也可以使用ProjectName