使用swift更新到Xcode 6 beta 4后获取dyld_fatal_error

 CHANBunCHAI 发布于 2023-01-01 18:43

我刚刚下载了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中运行良好.

6 个回答
  • 确定这个错误非常无益:

    dyld`dyld_fatal_error:
    ->  0x1200ad088 <+0>: brk    #0x3
    

    这当然只发生在设备上,而不是模拟器上.始终在设备上进行测试的另一个好理由.

    无论如何,有同样的问题,干净对我不起作用.删除DerivedData也没有帮助.还尝试同步部署目标版本.这似乎没有任何区别,但无论如何我做到了.

    解决方案是在Target - > General下将任何动态框架添加到Embedded Binaries设置:

    设置嵌入式二进制文件

    现在我知道其他答案中已经提到了.但是,如果我可以补充说任何依赖的动态框架也必须包括在内.

    因此,举例来说,如果你有一个动态的框架,一个是取决于动态的框架,那么它必须有一个加入到嵌入式二进制文件.

    请注意,如果动态框架A依赖于任何静态库或框架,您几乎肯定会被迫创建一个包含依赖二进制文件的伞形框架.

    其他考虑因素可能重要,也可能不重要.然而,亲自为我做了成功的结果;

    检查器中每个动态库的路径都设置为"相对于组".在上面的屏幕抓取中,嵌入式二进制文件的路径显示正确终止"build/Debug-iphoneos".

    动态框架在嵌入式二进制文件部分中.作为框架包装的静态库和静态库位于链接框架和库中.两个部分都没有出现.

    在设置这个时,XCode表现得很奇怪.以下证明是成功的:

      将动态框架添加到嵌入式二进制文件中.

      在左侧的XCode组中查找新框架,并将路径更新为 "相对于组",如前所述.

      从嵌入式二进制文件中删除动态框架.

      再次将动态框架添加到嵌入式二进制文件中.该路径现在应该正确显示.

      从"链接的框架和库"部分删除对动态框架的所有引用.

    2023-01-01 18:44 回答
  • 我最近遇到了这个问题,对我来说问题是我在同一个项目中添加了一个库,该库未在"常规"部分的"嵌入式二进制文件"中列出.

    注意:如果您在嵌入式二进制文件中添加它,它也将添加到链接库部分,可能会添加相同的两次.

    2023-01-01 18:44 回答
  • 清洁和构建将无法正常工作.您需要删除〜/ Library/Caches/com.apple.dt.Xcode*目录中的缓存.删除这些并重建.

    每次升级测试版时都这样做.

    2023-01-01 18:45 回答
  • 我试图将自定义iOS框架链接到我的项目时遇到了这个问题,因此对于那些有这个问题的人来说,这与复制文件构建阶段有关.

    我认为无法找到文件时会出现此错误.因此,在项目的相应目标中创建复制文件构建阶段.然后将文件(在我的情况下是自定义框架)添加到此阶段(如果它是框架,请确保选择'Frameworks'目标).

    2023-01-01 18:45 回答
  • 像这样的极其奇怪的问题可以通过Clean&Build(或者重新启动Xcode)来解决.您也可以考虑从〜/ Library/Developer/Xcode/DerivedData中删除相关文件夹.

    2023-01-01 18:45 回答
  • 清理,重新启动,删除等对我来说不起作用.

    我有一个包含另一个项目的项目.当我在iOS 7上运行项目并且在代码中访问包含的项目时,应用程序停在以下行:

    在此输入图像描述

    多天后,我看到容器项目的部署目标是7.0 (如下所示).

    在此输入图像描述

    包含在另一方面项目,有的部署目标8.1 (因为可以看到下面). 在此输入图像描述

    包含项目的部署目标更改为7.0解决了我的问题!

    该项目在iOS 8设备上运行良好.

    2023-01-01 18:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有