我有一个包含多个目标的 iOS Swift 项目。
将第一个目标转换为 Swift 5 很容易。
将第二个目标转换为 Swift 5,Xcode 10.2 尝试编译显然仅存在于第一个目标中的文件并失败(因为它没有编译第一个目标的所有文件并提示未解析的标识符)。
我该怎么做才能让 Xcode 仅编译那些在转换为 Swift 5 时属于目标的文件?
如何将我的项目转换为 Swift 5?
清理 Build 文件夹并重新启动 Xcode 10.2 没有帮助。
最佳答案
我刚刚经历了这个过程,并且能够从迁移指南最后一句话的提示中找出一个相当简单的解决方案 https://swift.org/migration-guide-swift5/
当我尝试在我的项目中单独转换每个目标时,第二个目标会失败,因为与第一个目标的共享代码已经转换。解决方案是创建一个新方案,其中包括需要一次性迁移的所有目标。
单击方案按钮以获取下拉菜单并选择“新方案...”
创建方案,然后在下拉列表中选择它并选择“编辑方案...”
在“构建”部分下,使用“+”按钮将需要转换的所有目标添加到方案中。
使用当前 Swift 版本构建新方案以确认所有目标构建正确。
使用 Edit -> Convert -> "To Current Swift Syntax..."开始转换
这对我在一个有 15 个目标的项目中很有用,该项目有很多 4.0 版的共享 Swift 代码。
关于swift - Xcode 10.2 将多个目标转换为 Swift 5 : Tries to compile some classes that are not part of target,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55355726/