Nik*_*iev 15 xcode ios swift swift4 xcode9
在Xcode 9中,我正在尝试自动转换为Swift 4.它失败并显示以下消息:
转换为当前Swift语法失败
在尝试迁移之前,请确保使用当前配置的Swift版本成功构建所有选定目标.
它抱怨缺少模块.但是当我进行常规构建时,没有问题.不确定这是否相关,但模块(Xcode正在抱怨的模块)已经早先转换为Swift 4(在它自己的项目中).
注意:此处不使用Cocoapods/Carthage.
注意:两个解决方案尝试(并且有效),但没有解决潜在的问题.
我将项目转换为Swift 4.0时也遇到了这个问题.当您尝试转换导入已在Swift 4.0中的框架的目标时,似乎出现问题.在您的屏幕截图中,您尝试转换' RecipeTextParser ',它导入已经是Swift 4.0的' SovaTools '.
我找到了肮脏但有效的解决方案.您可以在转换时使用旧版(Swift 3.2)版本的" SovaTools ".你应该不检查它在转换工具的目标选择窗口标记.然后,当' RecipeTextParser '成功转换后,您可以再次使用Swift 4.0'SovaTools '版本.
小智 5
我遇到了这个错误,在我的情况下,我的Pod之一(一个Xcode抱怨)是一个Swift 4目标,其余的是Swift 3.2。查看构建日志,看起来Xcode在一个位置构建了该框架,然后在另一个位置进行了搜索。当我将Pod恢复为较旧的版本(使用Swift3.2)时,问题就消失了。显然是Xcode的错误。高温超导
Xcode (Xcode 9) 语言迁移功能并不那么准确,它可以零容忍地将您的完整代码/项目从一个 swift 版本迁移到另一个版本。它为我们(开发人员)跳过了一些代码迁移。这可能是工具的错误或不准确。但您还需要付出一些手动努力,才能为您的项目/代码完全迁移 swift 语言版本。
现在,根据您的快照,Xcode 显示“RecipeTextParser”框架错误。我认为这是一个外部/第三方框架。另一点需要注意的是,您已经使用 CocoaPods 集成了该框架:
以下任一情况都可能导致代码迁移失败:
建议作为解决方案:
需要一些手动工作才能在 swift 语言之间完全迁移代码。我尝试使用上述选项进行快速迁移,我的所有项目现在都与 swift 4 兼容。
归档时间: |
|
查看次数: |
8750 次 |
最近记录: |