Swift3.2升级Swift4.2填坑建议(自动处理小工具/脚本)

前提:

   最近(2019.04)处理了项目的Swift版本升级,痛苦的经历,写了一个小工具分享一些心得给大家,希望有所帮助。

   公司项目是Swift3.2和Object-C混编,引用了很多三方库,三年以上迭代?

正文:

 面临的问题:

  1. Swift4.2中需要在Object-C的API引用的Swift代码前添加@objc修饰(Xcode可以一处一处的自动添加)
  2. 系统API风格大改(Xcode可以提示修改,但部分API需要手动再调整)
  3. 三方库的API变动

     刚开始我以为问题中的1、2点都可以通过Xcode处理并不麻烦,直到build一下报了2k+的报错,其中绝大部分都是两个问题的时候我就崩溃了。这手动改下去不是办法,所以必须思考想想怎么处理,毕竟还有其他好几个项目都需要这么升级。考虑到Xcode都能自动补齐,就打算写一个脚本替换。

考虑到时间有限和熟练度,就用了Object-C写了一个Command Line Tool?

抛砖引玉之用~!

使用方式:

一、环境说明

  1. Xcode10.0以及Xcode10.1
  2. 先确保项目能在 swift3.2 环境下正常运行

二、操作

  1. 下载https://github.com/smelloftime/AssistanceUploadSwiftVersionTool 项目至本地
  2. 对项目进行完整备份,对项目进行完整备份,对项目进行完整备份
  3. 配置均在main.m
  4. 设置项目所在路径 manager.projectPath
    例:manager.projectPath = @"/Users/smelltime/Desktop/TestDemo"
  5. 如果需要处理项目全部文件,就不用配置enablePaths以及excludePaths
    比如:在Home分组下有RankList分组的代码不需要处理,那设置在excludePaths 中即可excludePaths = @[@"/Users/smelltime/Desktop/TestDemo/Home/RankList"]
  6. 可以补充Swift3.2版本中需要替换为新格式的API名称,在targetWords以及replaceWords中追加即可
  7. 确定项目已经完整备份,且无其他软件正在编辑该项目
  8. 确认无误后直接运行UploadSwift3-2To4-2工程,等待输出 完成咯 即表示已经完成运行
  9. log日志中以error - 以及warring -开头的Llog需要注意,方便排查

具体参见README.md以及源码

希望能够帮助到您,欢迎评论、PR、Star?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值