使用企业证书打包发布有一年的有效期,之前遇到使用一个演示版本临时改用的版本发布出去后隔很长一段时间突然说还用,证书都过期了,这样的版本突然要维护也是无力吐槽,当时的代码都没了,想想证书过期的话重签名一下就好了,简单就学习了一下做个总结记录:
1.ipa解压出包含Payload的文件夹
2.右键Payload里面的app文件显示包内容,使用自己的mobileprovision文件替换embedded.mobileprovision(命名一致),删除_CodeSignature文件夹
3.cd到解压出来的并有Payload文件夹的目录
4.创建entitlements.plist文件(注意修改appid,文件放在包含Payload的文件夹里)
原来的entitlements.plist信息可通过指令获取:
codesign -d --entitlements - Payload/XXX.app
5.重签名,顺序由内到外,先签名里面的framework
6.先对framework签名:(XXX:可通过钥匙串获取,xcode上也有显示一般为公司的英文名Co.,Ltd.什么的)
#adhoc:
codesign -f -s "iPhone Distribution: XXX" --entitlements entitlements.plist Payload/XXX.app/Frameworks/DDSDK.framework
#dis:
codesign -f -s "iPhone Distribution: XXX" entitlements.plist Payload/XXX.app/Frameworks/DDSDK.framework
7.再对整个包签名:
codesign -f -s "iPhone Distribution: XXX" --entitlements entitlements.plist Payload/XXX.app
8.重新打包:zip -r qq.ipa Payload