dyld: 库未加载:@rpath/libswiftCore.dylib 新的 Xcode(10.2)出现问题

8

所有已提及的答案都无效。Xcode 10.2 发生了一些新变化。

无论我使用 Swift 4.2 还是 5,都会发生这种情况。

即使是全新的、未编辑过的命令行工具也会出现这种情况。

你所需要做的就是创建一个 macOS 命令行工具,然后点击“运行”。

你将立即收到这个错误信息。

到目前为止,我所做的一切都没有解决这个问题。


你使用的是macOS 10.4.3吗?你安装(或更新)了“Swift命令行工具运行时”吗? - Martin R
我正在使用10.14.3版本。 - Chris Marshall
我已经运行了更新程序。我需要执行新的步骤吗?我会查看一下。 - Chris Marshall
从Xcode 10.2开始,Swift命令行工具需要macOS中的Swift库。这意味着在使用Swift命令行工具之前,必须先安装Xcode或者手动安装Swift库。 - Martin R
太好了!我想那就是我需要做的(RTFM)。把它作为答案,我会给你打勾的。谢谢! - Chris Marshall
我也遇到了使用新的Xcode 10.2时出现这个问题,我的项目突然出现了这个错误,但它只影响一个特定的分支而不是所有分支。所以是有点奇怪的。 - xeravim
3个回答

18

来自Xcode 10.2的Swift 5发布说明

支持命令行工具包的Swift 5运行时

从Xcode 10.2开始,Swift命令行工具需要macOS中的Swift库。 它们从macOS Mojave 10.14.4开始默认包含在内。 在macOS Mojave 10.14.3及更早版本中,有一个可选的软件包为Swift命令行工具提供这些运行时支持库,您可以从Apple开发者下载页面下载。 如果您安装了此软件包的beta版本,请用发布版本替换它。 此软件包仅适用于Swift命令行工具,而不适用于带有图形用户界面的应用程序。

请注意:

  • 只有当您仍在使用macOS 10.14.3时,才需要进行此操作。一旦将macOS升级到10.14.4,操作系统将提供Swift运行时库,使用Xcode 5创建的命令行工具无需安装“Swift 5运行时软件包”即可运行。
  • 在具有Xcode 10.2的macOS 10.14.3上,您必须下载并安装最新的“Swift 5 Runtime package”。较早版本可能会在Xcode 10.2 beta版发布时安装,但无法正常工作。
  • Xcode 10.2 beta版的早期发布说明建议添加一个名为SWIFT_FORCE_STATIC_LINK_STDLIB=YES的用户自定义设置来解决问题,但现在不再需要。

  • 1
    @LittleGreenViper:我已经升级到10.14.4了,所以无法重现。你是否安装了3月25日的Swift 5运行时包? - Martin R
    好的。搞定了。谢谢! - Chris Marshall
    我已经升级到10.14.4,但问题仍然存在。有什么解决方法吗? - xeravim
    @FabioBerger:同样的错误信息吗?还是一个命令行工具项目? - Martin R
    1
    不确定为什么在10.14.4之后仍然崩溃。那应该可以在不安装新库的情况下工作。无论如何,您需要安装“命令行工具的Swift 5运行时支持”DMG,而不是其下面的那个(当您首次启动Xcode时安装)。这只有在低于.4的OS级别才需要。 - Chris Marshall
    显示剩余10条评论

    3
    这个问题是因为我升级了XCode到10.2,但没有更新MacOS到最新版本,并且我使用的sdk也没有更新。显然,以下步骤解决了我的问题:
    1. 将您的MacOS更新至最新版本List item
    2. 对于我的情况,即使更新了所有必需的更新,仍无法解决崩溃问题。在这种情况下,不要忘记检查受影响的SDK /框架是否已从最新版本的XCode(10.2)中重新构建,因为在使用最新版本的XCode(10.2)重建SDK后,问题消失了。
    3. 对于我的情况,我们使用Jenkins发布应用程序,如果云端仍在使用旧版xcode和操作系统,则.ipa将仍会崩溃。需要将jenkins云端的macOS和xcode也更新。
    4. 因为更新云端将影响到所有东西(接近发布日期),所以我要么回滚操作系统和xcode,要么使用旧的sdk/框架(重建之前的状态)。但是,选择第二个选项将使模拟器崩溃,但如果发布该应用程序,则至少不会出现崩溃问题。

    2

    我按建议更新了macOS,但如果没有在Package.swift文件中进行以下更改,它不会起作用:

    - // swift-tools-version:4.2
    + // swift-tools-version:5.0
    

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接