我正在使用 xCode 13.1 和 macOS 12.0.1 Monterey。我添加了
KingFisher
并将其从我的 Pod 中删除。但我的项目不再建立了。我的本地 SDK 之一遇到此错误:
Failed to build module 'CbSdk';
this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.4
(swiftlang-1205.0.26.9 clang-1205.0.19.55)', while this compiler is 'Apple Swift version 5.5.1
(swiftlang-1300.0.31.4 clang-1300.0.29.6)'). Please select a toolchain which matches the SDK.
我已经做了但没有成功的事情:
pod deintegrate
和 pod install
。DerivedData
。摘自此 Twitter 帖子。
您需要在框架目标上设置 BUILD_LIBRARY_FOR_DISTRIBUTION 构建设置
https://www.swift.org/blog/library-evolution/
当我尝试更新库时,我遇到了同样的问题。我的 Xcode 版本是
13.2
,而 swift 版本是5.5.2
。但我想要更新的库需要一个 swift 版本of 5.7.0
。在 Xcode 中使用工具链可能是解决方案,但我决定使用最新版本更新 Xcode。
我将 Xcode 更新到最新版本
14.1
,问题已解决。自动在最新的 Xcode 上找到 swift 版本。
就我而言,我正在开发一个在内部使用第 3 方 Swift 包的框架。最初,我以为这个错误是因为我升级到 Xcode 15 而引发的。结果,它完全无关。
如果您使用第 3 方库并想要导出框架,则必须在导入前面包含“@_implementationOnly”标签。
示例:“@_implementation仅导入 BoltsSwift”。
如果您这样做,它不会将这些第三方库导入包含在框架内的二进制模块中。这很棒,因为框架的用户不关心后端使用的第 3 方库。希望这对至少一个人有帮助!我很少在网上看到有关 @_implementationOnly 标签的任何内容。