哈Ha! 我向您展示了Antoine Van Der Lee撰写的文章
“ Swift 5.0:如何迁移项目和框架”的翻译。
Swift 5.0于2019年3月发布,是ABI Swift的第一个稳定版本。 尽管许多资源介绍了Swift 5.0的新功能,但它们通常不会告诉您将项目升级到Swift 5.0所需执行的操作。
在本文中,我将介绍将现有项目升级到Swift 5.0时可以采取的步骤。
确认您的项目已被移植到Swift 4.2。如果本文有助于说服您的产品经理计划过渡时间,我不会感到惊讶。
使用迁移助手自动迁移
Xcode建议使用迁移助手自动将您的代码更新为当前的Swift语法。 该转换将使用最新版本的Swift,该版本随已安装的Xcode一起提供。
Xcode 10.2是第一个包含Swift 5.0的版本,因此您需要使用此版本的软件。
此功能通常会为您完成艰苦的工作。 因此,我建议通过转到“
编辑”->“转换”->“转换为当前Swift语法...”来启动代码端口。
提示: 确保仅对您的项目和框架执行此操作。 您可以跳过任何外部依赖项的转换。

依赖关系更新
最有可能的是,您有一些Swift依赖项需要更新。 许多大型的开源项目,例如Alamofire和Moya,已经开始使用Swift 5.0版本。
但是,可能并非所有依赖项都已更新。 尽管我想敦促您进行转移,然后自己提交拉取请求,但您可能需要稍等片刻,直到项目所有者自己完成。
如果您打算在转移之后对您的应用程序进行全面的全面测试,那么也有必要直接更新您的依赖项。 您的测试将直接涵盖这些更新,这可能是“双赢”。
CI环境更新
如果您正在使用Travis,Jenkins或任何其他CI平台,则还需要更新Xcode。

在Swift中使用结果
Xcode Converter仅执行基本代码更改。 它不考虑新的
Result类型 ,该
类型现在包含在Swift标准库中。 许多框架的代码中都包含
“ Result”类型 。 这可能意味着您有很多不再需要枚举类型的数据。 但是,不要急于用依赖项中的数据替换它们:您依赖外部结构中的代码更改。
常见错误类型
您当前的
“结果”类型可能只为适当情况定义了类型。
Swift 5.0中的结果还要求您确定预期的错误类型。 作为一个受人尊敬的公民,您应该根据自己的期望尝试使这种错误具体化。 但是,如果要加快迁移速度,还可以将类型设置为
Swift.Error 。
提示: 如果您想了解有关Swift 5.0中新的Result类型的更多信息,建议您阅读本文 。我们考虑了ABI的稳定性
实际上,ABI稳定性是一个单独的问题。 您可以在Swift官方博客上
阅读有关此内容的
更多信息 。
请记住,正在下载
的应用程序的
大小 将减小 ,因为应用程序不再需要嵌入标准的Swift库!
这应该说服您的产品找到转移的时间。如果您想进一步了解Swift 5.0,可以跳至Apple Migrating to Swift 5.0 博客文章 。