首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Swift 4.1.2编译的模块不能由SWIFT4.2编译器导入

使用Swift 4.1.2编译的模块不能由SWIFT4.2编译器导入
EN

Stack Overflow用户
提问于 2018-09-19 20:03:49
回答 4查看 14.3K关注 0票数 16

短篇小说: Xcode 10被设置为Swift 4,但它正在使用SWIFT4.2。

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

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

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

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

“迅捷版--苹果Swift版本4.1.2 (迅捷-902.0.54 clang-902.0.39.2)”

  • 我在查迦太基的最新消息。
  • 我已经退出Xcode 10并重新启动。
  • 我已经彻底清理和删除了衍生数据。
  • 我构建并得到这个错误:

“使用SWIFT4.1.2编译的模块无法由SWIFT4.2编译器导入:.../App/Carthage/Build/iOS/RealmSwift.framework/Modules/RealmSwift.swiftmodule/arm64.swiftmodule”

对我来说,这表明我的Swift版本(4.1.2)设置正确,Xcode仍然试图使用Swift (4.2)的错误版本。

有没有人对如何解决这个问题有建议?我是不是遗漏了什么?Xcode错误?

EN

回答 4

Stack Overflow用户

发布于 2018-09-21 11:23:50

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

我将命令行工具设置为使用Xcode 9.4.1

您必须使用Xcode 10重新编译Swift 4依赖项,因为Swift 不稳定,即用不同编译器版本编译的二进制文件是不兼容的。即使是使用不同版本的Xcode编译的SWIFT4.0二进制文件也可能不兼容。

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

票数 5
EN

Stack Overflow用户

发布于 2018-09-21 11:03:43

与Xcode 10一起使用领域需要从源代码构建它。在终端写:

代码语言:javascript
复制
git clone --recursive https://github.com/realm/realm-cocoa.git

cd realm-cocoa

sh build.sh ios-swift
票数 3
EN

Stack Overflow用户

发布于 2019-04-02 16:49:16

您可以使用多个快捷工具链。安装一些版本后,请下载url swift工具链下载。重新启动xcode,在xocde菜单中,您可以看到工具链选项。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52413437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档