产品终于上线了,趁着刚上线这会有点空闲时间,扒一扒swift打包、发布、上线中遇到的坑。
背景:以前一直用的OC,应公司要求新项目用Swift; X-code打包常用的有两种方式:1.苹果推荐的archive方式;2.command +B编译后,在product里找到name.app文件,然后将其拖到桌面,新建“Payload”文件夹,将.app文件放到文件夹里面,然后将文件夹压缩成.zip,再将.zip文件改成.ipa文件。
第一次提审: 项目完成后交付给测试,测试合格后,当晚便和同事提交AppStore审核,第一次审核速度还挺快,从waiting到In Review只用了一天,然后就是漫长的三天等待时间,结果收到的结果是拒绝,虽然心情很沮丧,还好提前有心理准备,苹果给的反馈信息是在IPV6环境下,点开我们的某个功能模块时crash, 排除原因后,只能是某银行的SDK不支持IPV6,测试的结果果然是这样,重新更换SDK,提审。
第二次提审:更新SDK后,再次提审,又是漫长的一周等待,结果:拒绝。苹果反馈的错误信息跟第一次一样,查看crash Log,还是崩溃在某银行的SDK内,但是我们无法复现这个bug,对网络环境,SDK,代码一项项排除,还是没有发现问题,公司着急上线,只能抱着侥幸的心理先提交审核,同时继续查找原因。结果依旧是拒绝。收到这个消息后,内心是崩溃的。不过工作还得继续。
第三次提审:成功。这次我用archive的方式打包(以前一直是同事负责打包),立马复现了提审中出现的问题,发现是一个懒加载数组的问题,在debug下运行和第二种打包方式都没有问题,用archive的方式打包后就出现了bug。修改后继续提审,三天后,苹果返回结果:成功。
结论:
选用苹果推荐的打包方式:不管其他打包能省多少时间。
debug下的自测只能做参考,release下的打包后跟debug下的打包是不一的。
3.swift不能把OC的代码直接翻译过来用。