【发布时间】:2018-03-02 12:58:00
【问题描述】:
在 Xcode 9 中,我正在尝试自动转换为 Swift 4。 它失败并显示以下消息:
转换为当前的 Swift 语法失败
在尝试迁移之前,请确保所有选定的目标都使用当前配置的 Swift 版本成功构建。
它抱怨缺少模块。但是当我进行常规构建时,没有问题。不确定这是否相关,但该模块(Xcode 抱怨的模块丢失了)之前已经转换为 Swift 4(在它自己的项目中)。
注意:这里没有使用 Cocoapods / Carthage。
注意:两种解决方案已尝试(并且有效),但没有解决根本问题。
- 一种解决方案是手动进行转换(在构建设置中将 Swift 版本更改为 4 并一一应用 Fix-It,直到不再出现构建错误)。
- 另一个解决方案是禁用第三方框架(注释掉所有使用它的代码),进行自动迁移,然后重新启用框架。对于较大的项目,这可能会变得非常困难。
【问题讨论】:
-
请构建您的项目并检查项目是否构建成功。然后尝试转换
-
Pulkit,如前所述,“但是当我进行常规构建时,没有问题。”。
-
参考此swift.org/migration-guide-swift4 请说明您从哪个版本转换
-
您可以删除您正在使用的库...然后尝试转换应用程序..只有在您不必注释大量代码的情况下...
-
对于使用 CocoaPods 的任何人,可能值得尝试删除“use_modular_headers!”暂时并将其替换为“use_frameworks!”用于迁移。
标签: ios swift xcode swift4 xcode9