iOS企业签名之用脚本签名
2022-04-01 本文已影响0人
十二栗子
具备条件:IPA包、企业开发者账号、终端
以下为单个IPA包签名执行步骤
同级目录下有XX.ipa ,embedded.mobileprovision,打开终端
![](https://img.haomeiwen.com/i1765303/9445565a3af535d1.png)
一、描述文件生成plist文件
security cms -D -i embedded.mobileprovision > entitlements_full.plist
/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' entitlements_full.plist > entitlements.plist
![](https://img.haomeiwen.com/i1765303/d716adfaa617d8f3.png)
二、签名过程
1.解压(或叫拆包,手动方法为:复制ipa副本,把ipa后缀改为zip,双击解压得到Payload)
unzip Demo.ipa
2.把描述文件放进解压包
cp embedded.mobileprovision Payload/*.app/
3.签名
如果有其他Frameworks或其他库,需在签名前多执行一次,路径为Payload/.app/Frameworks/XX.framework或者Payload/.app/Frameworks/*.dylib,没有就下一步
/usr/bin/codesign -f -s "iPhone Distribution: XXX Co., Ltd." --entitlements entitlements.plist Payload/*.app
4.移除旧包,压缩为新包,需要备份旧包的,提前保存
zip -r Demo.ipa Payload
![](https://img.haomeiwen.com/i1765303/3c2d4099e4aad8ea.png)
注意:如果签名好的包除了iOS15以后系统不能下载,以上压缩前需执行
/usr/bin/codesign -s "iPhone Distribution: XXX Co., Ltd." -f --preserve-metadata --generate-entitlement-der Payload/*.app
/user/bin/codesign -dvvvvv Payload/*.app
至此,单个包的签名就结束啦!需要批量签名的私聊我哈~