"当前SwiftyJSON(通过Swift 3.0.2)无法使用Swift 3.1"

时间:2017-03-29 12:29:02

标签: swifty-json carthage

当我今天尝试更新 Xcode8.3(8E162)时 - 更新 carthage 后发生错误:

  

当前的SwiftyJSON(通过Swift 3.0.2)无法使用Swift 3.1 balabala导入

我发现 SwiftyJSON 没有在终端检查成功。后来,在我沉溺了几个小时之后,我发现解决方案包含在官方中 GitHub repository issue #771:
"Current SwiftyJSON (via Swift 3.0) cannot be imported with Swift 3.0.2."

还有命令

:carthage update --no-use-binaries SwiftyJSON --platform iOS

您需要再次删除并添加SwiftyJSON.framwork

虽然这个问题已经解决,但我不知道原因,有没有伙伴知道为什么?

2 个答案:

答案 0 :(得分:0)

请确保按类型使用run swift 3.1" swift --version"在CLI中。如果您仍然看到" Apple Swift版本3.0.2"这意味着你的mac使用swift 3.0.2编译器。尝试将xcode 8.3替换为xcode 8.2.1可能有所帮助。

答案 1 :(得分:0)

谢谢,你的问题让我在花了一整天的时间工作 - 我无法弄清问题所在。

现在我知道问题是什么,看起来原因是SwiftyJSON发布了他们的框架的二进制版本,Carthage下载并使用它。这些尚未针对Swift 3.1进行更新(SwiftyJSON 3.1.4于1月10日发布),如果没有 - no-use-binaries 开关,Carthage会很乐意使用它,即使它无效。