项目需求
批量打上百个应用,项目的代码没有变动,应用有不同的icon,启动图,bundleID,第三方账号,和其他一些业务相关的差异。
思路
自动打包是基础,打包完之后可以根据母包重新签名生成相似的包,生成的包可以自动部署。只要攻克这三个点就能实现全自动化
- 自动打包
- 重新签名
- 先自动打包生成一个母包,然后跑脚本对母包进行重新签名得到一个个子包。
- bundleid替换
- icon、启动图和第三方配置信息。
- 分发部署
自动部署
通过自动部署,我们可以直接将包发到AppStore、fir\蒲公英这样的第三方平台、以及自己的服务器上。这里重点推荐mattt大神的——SHENZHEN。
SHENZHEN的安装和使用
通过gem安装
$ gem install shenzhen
具体的用法可以参见这里,毕竟在中国,主要提下FIR和蒲公英已经上传AppStore的命令:
FIR
$ ipa distribute:fir -u USER_TOKEN -a APP_ID
蒲公英 (PGYER)
$ ipa distribute:pgyer -u USER_KEY -a APP_KEY
USER信息到各自注册账号查找
iTunes Connect Distribution
$ ipa distribute:itunesconnect -a me@email.com -p myitunesconnectpassword -i appleid --upload
我们仍然是可以通过读取配置信息,来写个脚本跑部署,这部分就不再举例了,如果你不小心看到这个系列我觉得你应该会了,或者我们也可以相互商讨(毕竟我的blog人读的少 o(╯□╰)o)。实际上,我的同事已经实现了。
论持续化集成
虽然iOS好像能使用Jenkins进行持续化集成(好像我也用了一下Jenkins,貌似不是很好用,可能是我没有坚持用吧),但是通过这个序列的文章,其实我们自己就实现了一套持续化集成了。刚开始用蒲公英那会儿我把ipa包传给他们,他们就能放到平台给其他人测试,我觉得好神奇啊,后来想想,无非就是重新签名。持续化集成其实我的同事也实现了,我们用了一台服务器,定时的拉取代码,跑脚本,然后上传到测试服务器供人下载使用。只是公司内部推广不好,毕竟不是大厂也好像不是那么工程师文化,所以巴拉巴拉。
参考:
- SSL(https)中的对称加密和非对称加密
- RSA算法原理(一)
- Bypassing OpenSSL Certificate Pinning in iOS Apps
- Understanding provisioning profiles and certificates
- Code Signing explained
- Mach-O可执行文件
- iOS开发中的各种证书
- 代码签名探析
- 苹果证书和公钥私钥加密
- iOS8以后CodeSign失效问题
- iOS证书及ipa包重签名探究
- ipa包部署网页安装
- iOS Code Signing: Under The Hood
- How iOS developers use code signing to get their apps on iPhones
- iOS Code Signing 学习笔记
- 苹果开发者账号那些事儿(二)
- Inside Code Signing
- 公开密钥加密
- 数字签名
https://blog.csdn.net/skylin19840101/article/details/60583893
https://objccn.io/issue-17-2/
http://www.vienta.me/
http://foggry.com/
https://blog.csdn.net/chsadin/article/details/61192923
https://www.jianshu.com/p/bd4c22952e01
https://www.jianshu.com/p/5d59966eaecc?from=timeline
https://blog.csdn.net/skylin19840101/article/details/60583893
https://www.cnblogs.com/tangjuanj/p/6720017.html
https://www.cnblogs.com/pixy/p/4817579.html
https://objccn.io/issue-17-2/
https://blog.csdn.net/wang_Bo_JustOne/article/details/79443656
https://www.jianshu.com/p/14f5198bab10
https://blog.csdn.net/chsadin/article/details/61192923
http://ios.jobbole.com/90259/
https://www.jianshu.com/p/5d59966eaecc?from=timeline
https://blog.csdn.net/skylin19840101/article/details/60583893