我将 xCode 从 9.0.1 更新到 9.1。以前一切正常,但现在,当我尝试构建我的项目(使用 Carthage)时出现此错误:
使用 Swift 4.0 编译的模块无法导入 Swift 3.2.2 (或 SWIFT 4 用户的 4.0.2)
不需要让你知道这个模块,因为它不依赖它(因为当我注释相关的导入行时,错误他放错地方到下一个导入,所以对于另一个模块)。
我尝试了我所看到的一切:
- 清理项目
- 清理 Carthage 文件夹
- 清理派生数据文件夹:
rm -rf ~/Library/Caches/org.carthage.CarthageKit/DerivedData
- 使用 Carthage 更新:
carthage update --platform iOS (使用或不使用 --no-use-binaries )
- 更新模块
- 重新构建
- 关闭并重新打开 Xcode
- 祈祷
Carthage (0.26.2) 和 MacOS (High Sierra) 是最新的。
所以,我的最后一个假设(据我所知)是 Xcode 9.1 不允许我们使用不是用 Xcode 9.1 构建的模块。所以我可以回到 Xcode 9.0.1 但我无法将我的项目交付给 Xcode 9.1 用户。我无法想象要等待所有模块的更新。那么你有什么想法吗?
谢谢!
Best Answer-推荐答案 strong>
是的,您必须将您使用的每个框架升级到 9.1。
“正如我所说,它不依赖于模块,因为如果我评论一个导入,那就是另一个有问题的导入”
那是因为下一个有完全相同的问题。只需将“嵌入式二进制文件”中的所有框架替换为已用 9.1 编译的版本即可。为了向自己证明这一点,在它提示的第一个上做,然后 Xcode 会告诉你第二个现在是问题,等等。
关于ios - Xcode 9.1 : module compiled with Swift 4. 0 不能在 Swift 3.2.2 中导入,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/47142216/
|