Swift项目版本4.0迁移4.2记录


阳光倾泻而下,他的身影穿过院子,提利昂·兰尼斯特昂首挺立,仿佛是一位国王。

–《 冰与火之歌》

前言

  • 一路从Xcode 10的Beta版试用下来,总的来说这一版本的Xcode相比之前还算是有很大提升的,至少感觉和历代相比第一个测试版就赢在起跑线上了,虽然并没有加入非常多酷炫的功能,但是在一些细节的打磨上个人还是比较喜欢的。
  • 随着Xcode 10正式版的发布,我们也终于迎来了swift 4.2,因为Swift 4.2 是为 Swift 5 的 ABI 稳定性做准备,虽然包含了一些底层 ABI 的变化,具体的变化请参考官方博客,相较于上一个版本变化并不是非常的大。

迁移

  • Swift版本迁移实质上两部分的迁移:第一部分是项目中用到的三方库的版本升级;第二部分是我们主项目版本迁移。

主项目迁移

  • 首先在项目的Build Setting 中将Swift版本设置为最新的版本4.2, 如下图:

    migration_version
  • Edit -> Convert -> To Current Swift Syntax进行转换。

    migration_convert_project
  • 勾选需要转换的指定的Targets,此时如果还没有更新三方库或者部分三方库还未适配Swift4.2,可以只勾选我们需要的Targets即可,如只勾选主Target。

    • 完成后直接点击下一步等待完成。
migration_target
  • 转换完成,就会弹出如下编辑界面,将项目中需要修改的地方一一修改即可,都是一些语法变化相关的,大部分根据提示自动修复即可。

    migration_code
  • 修改完成,点击保存,重新编译项目。

三方库迁移

  • 关于三方库的迁移,一般我们在项目中使用的都是比较流行的开源库,所以这些库的维护和更新是非常频繁和及时的,我们可以将我们用到的三方库列一个表,然后具体查看升级swift4.2的情况,基本上如果这些库是比较热门的,一两天内就会适配swift4.2,即使没有适配我们也可以单独只迁移适配过的库。
  • 首先,将本地的Pod仓库和使用的库更新到最新版本,如下图:

    migration_podUpdate
  • 然后选择Edit -> Convert -> To Current Swift Syntax进行转换,注意在勾选需要转换的Target的时候根据我们具体用到的已经升级swift4.2的库勾选即可,没有升级适配swift4.2的库可以先不要勾选,等以后适配了在迁移,如果一切正常,就可以开心的喝着咖啡、吃着零食等下班了。

要不要鼓励一下😘