繁体   English   中英

如何使用 XCode 12.4 从 Swift 3 迁移?

[英]How do I migrate from Swift 3 using XCode 12.4?

我已经搜索过类似的问题,但我找不到任何人描述这样的事情......

Swift项目三年没看,刚打开。 它在 Swift 3。

当我打开 XCode 时,它自动安装了一些更新,现在是 XCode 12.4(我不知道之前是什么)。

我知道我必须至少将我的代码迁移到 Swift 4,因为不再支持 Swift 3。

我做的第一件事是 go 编辑...转换...到当前 Swift 语法。 但是我得到了“没有选择目标”的错误,它不会让我 select 成为目标。 我在网上找到建议更改Swift语言版本。 我通过 Build Settings 执行此操作,那里有一个下拉菜单,我选择了 Swift 4.0(以前是 3.0)。 这允许我将 select 作为转换目标,但随后我收到错误消息,指出转换失败,并且“请确保所有选定的目标在尝试迁移之前使用当前配置的 Swift 版本成功构建。”

我看到的建议是,我应该首先确保在尝试迁移之前可以构建代码。 但我无法构建它,因为我收到错误消息“SWIFT_VERSION '3.0' 不受支持,支持的版本为:4.0、4.2、5.0。”

我似乎进退两难:我无法将代码转换为 Swift 4,因为它无法构建,但我无法构建它,因为它不是 Swift 4!

我需要以某种方式获取 XCode 的旧版本,还是有其他解决方案?

顺便说一下,我现在无法将构建设置中的 Swift 语言版本改回 3.0,因为该选项不在下拉列表中。

啊哈,我找到了解决办法。

我通过这个问题找到了它。

事实证明,我需要将 go 放入MyProjectName.xcodeproj/project.pbxproj并将对SWIFT_VERSION的所有引用从 3.0 更改为 4.0。

我通过vim MyProjectName.xcodeproj/project.pbxproj做到了这一点,然后在 Vim 中我使用了:%s/SWIFT_VERSION = 3.0/SWIFT_VERSION = 4.0/g

在我这样做之后,转换工作将它从 4.0 转换为 5.0。 事实上,除了AppDelegate.swift中非常小的语法更改外,似乎几乎不需要任何更改,这次工具本身进行了我之前所做的等效更改 - 即在project.pbxproj SWIFT_VERSION从 4.0 更改为 5.0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM