gpt4 book ai didi

ios - Swift 4.2 编译器无法导入使用 Swift 4.1.2 编译的模块

转载 作者:技术小花猫 更新时间:2023-10-29 10:26:31 26 4
gpt4 key购买 nike

短篇小说:Xcode 10 设置为 Swift 4,但它使用的是 Swift 4.2。

长话短说:我们的项目还没有为 Swift 4.2 做好准备,因为我们的依赖框架还不是 Swift 4.2。但是,我想至少使用 Xcode 10。

  • 我安装了 Xcode 9.4.1 和 Xcode 10。
  • 我将命令行工具设置为使用 Xcode 9.4.1:

enter image description here

  • 在 Xcode 10 中,我将项目设置 Swift 语言版本设置为 swift 4。

enter image description here

  • 我已经在命令行上验证了 shell 的 Swift 版本使用的是 4.1.2:

"swift --version Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)"

  • 我运行了迦太基更新。
  • 我已退出 Xcode 10 并重新启动。
  • 我已经深度清理并删除了派生数据。
  • 我构建并收到此错误:

"Module compiled with Swift 4.1.2 cannot be imported by the Swift 4.2 compiler: .../App/Carthage/Build/iOS/RealmSwift.framework/Modules/RealmSwift.swiftmodule/arm64.swiftmodule"

对我来说,这表明我已经正确设置了预期的 Swift 版本 (4.1.2),而 Xcode 仍在尝试使用错误的 Swift 版本 (4.2)。

有人对如何解决这个问题有建议吗?我错过了什么吗? Xcode 错误?

最佳答案

我不是很肯定,但我猜是这个原因:

I have Command Line Tools set to use Xcode 9.4.1

您必须使用 Xcode 10 重新编译 Swift 4 依赖项,因为 Swift is not ABI-stable ,即使用不同编译器版本编译的二进制文件不兼容。甚至使用不同版本的 Xcode 编译的 Swift 4.0 二进制文件也可能不兼容。

我对 Carthage 没有太多经验,但我的猜测是你应该使用 Xcode 10 作为命令行工具,但你必须设置不同的 Swift 语言版本才能被 Xcode 10 使用。它可能应该在项目中指定(在本例中为 RealmSwift),或使用环境变量,但恐怕您需要其他人来回答更多细节。

关于ios - Swift 4.2 编译器无法导入使用 Swift 4.1.2 编译的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52413437/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com