【背景】最近iOS端项目新增widget,为了让widget能够使用第三方库(AF、Masonry),同时与主App的兼容。更新了Podfile文件中对第三方库引用的写法,以及旧有pod配置缓存无法清除报错等原因,导致需要将项目进行迁移。
迁移:新建项目,将第三方库类、业务代码资源拷入,重新配置项目。
下面的项目迁移流程为参考建议,如果更好方案,可以讨论更新。(项目中所有文件夹必须都是实体文件夹,不允许创建虚拟文件夹)
1、新建项目,修改最低兼容iOS版本;(如果有widget之类的,也在这一步创建好,并选择好对应的iOS版本号)
2、在项目目录中建立git仓库,先使用本地git进行项目管理;【重要,以下每一步完成之后,需要git commit,不再赘述】
3、创建Podfile文件,使用pod命令先下载好需要用pod管理的三方库类,编译验证无误;
4、对于手动管理的第三方库类和系统库类:
(1)将建立好目录结构的手动管理的第三方库类拷贝只项目对应的目录下,在Xcode中使用“Add Files to ”来导入,
(2)然后比照之前项目的Linked Frameworks and Libraries 列表,缺的一个个手动add进来,
(3)在build setting中,搜索 search ,结果如下,同样,比照之前项目的配置,配置成一样的,
(4)如果之前有手动管理的三方库配置文档清单最好,如果没有,就开始biuld,应该会报错,常见的报错还是需要在builde setttings 和 build phrase中来配置解决;(这部分的代码如果跟业务代码有耦合了话,那就进行下一步,并且,以后再也不要直接修改第三方库类了)
5、将建立好实际目录结构的项目文件复制到新项目的对应目录下,在Xcode中使用“Add Files to ”来导入,pch文件(如果有)也拷过来,在build settings 中搜索“prefix header”,配置如下图中最后两项,比照老项目,接着编译验证。如果还缺图片等资源文件,请自行导入。
6、如果项目名称不变,bundle id等标识性的东西不变,强烈建议,直接向当前项目的info.plist删除,将原来项目的直接copy过来,编译验证。
7、依次检查capacities、general、build settings中重要的配置是否正确。
8、调整项目文件结构。
9、正式将项目跑起来,验证业务主流程。
10、验证App主要技术功能点及有关的授权:
(1)消息推送
(2)相册和相机访问
(3)音频和视频播放 ,注意,含音效
(4)录音录视频
(5)三方登陆、分享、支付,app之间来回跳转
(6)定位功能
(7)项目内web页面(特别是含有加载第三方web页面的地方)
(8)与web页面的交互
(9)widget等的兼容性、交互、跳转
(10)其他