当我今天尝试更新 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
。
虽然这个问题已经解决,但我不知道原因,有没有伙伴知道为什么?
答案 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会很乐意使用它,即使它无效。