【问题标题】:XCode 13.1: Undefined symbol: __swift_FORCE_LOAD_$_XCTestSwiftSupportXCode 13.1:未定义符号:__swift_FORCE_LOAD__XCTestSwiftSupport
【发布时间】:2021-12-21 21:42:51
【问题描述】:

昨天我的应用程序运行良好,没有任何错误或警告。但是当我今天尝试运行它时,构建失败了 - 我没有更改代码中的任何内容:

Undefined symbol: __swift_FORCE_LOAD_$_XCTestSwiftSupport

如何解决这个问题,为什么以前工作时会突然出现这种情况?

这是我最近在使用 XCode 时经常遇到的一个问题。我的代码将顺利运行而不会出现任何错误,但是当我在不同的时间重新启动它时,XCode 会随机开始抛出错误 - 无需对实际代码进行任何更改。

enter image description here

enter image description here

【问题讨论】:

  • 清除派生数据?清理构建?
  • 是的,我都试过了。
  • 如果您的代码几天前运行良好,但突然有一天它开始报告错误,那么一定是发生了一些变化。如果不是代码更改,可能是 Xcode 本身,也可能是项目配置。请注意这些事项。
  • 所以我能够通过转到应用程序设置 > 构建阶段 > 将二进制文件链接到库 > 添加链接库“XCTest.framework”来消除错误。但是,即使构建成功,当应用程序启动时,它也会中止:0_abort_with_payload。如果我删除库,构建又开始失败。
  • 我通过导航到目标应用 > 构建设置 > 链接 > 其他链接器标志 > 编辑或添加 -weak_framework "XCTest" 解决了这个问题。 stackoverflow.com/questions/20340763/…

标签: ios swift xcode swiftui


【解决方案1】:

我通过导航到目标应用设置 > 构建阶段 > 将二进制文件链接到库 > 添加链接库“XCTest.framework”解决了这个错误。

如果之后您的应用开始崩溃,并出现以下错误中止:

dyld: Library not loaded: @rpath/XCTest.framework/Versions/A/XCTest

0_abort_with_payload

那你可以看看这个线程的建议:Xcode 5.0.2 dyld: Library not loaded: @rpath/XCTest.framework/Versions/A/XCTest

对我有用的解决方案是: 导航到目标应用 > 构建设置 > 链接 > 其他链接器标志 > 编辑或添加 -weak_framework "XCTest"

【讨论】:

  • 在我的情况下,在看到“dyld:未加载库:@rpath/XCTest.framework/Versions/A/XCTest”后,我将 Link Binary 下 XCTest.framework 库的状态设置为可选与图书馆。这解决了问题。
【解决方案2】:

如果添加也会出现这种情况

import XCTest

到非测试包中的文件。

【讨论】:

  • 天哪,谢谢。由于最新的 Xcode 会自动添加导入语句;我不小心在我的非测试文件中创建了一个 XCTestCase,它在我没有意识到的情况下添加了导入。
猜你喜欢
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-04
  • 2012-08-29
  • 2021-03-12
相关资源
最近更新 更多