网上已经公开了很多签名脚本,比如这个
#!/bin/sh
#获取第一个参数,也就是要用于重新签名的IPA名称,带后缀.ipa
OLD_IPA=$1
#获取第二个参数,也就是重新签名之后的IPA名称,不带后缀
NEW_IPA=$2
#所用的Provisioning Profile文件
RESIGN_PROVISION="Youxin7Developer.mobileprovision"
#所用的证书名称,一定是在keychain里面看到的名字
RESIGN_CERT="iPhone Developer: Kailiang Liu (DEU5UF8KH8)"
#你的IPA解压之后,在Payload文件里面的那个文件夹名称后缀是.app
APPNAME="SoftphoneDemo"
#解压IPA
unzip $OLD_IPA
#删除原来的签名和mobileprovision文件
rm -r "Payload/$APPNAME.app/_CodeSignature"
rm -r "Payload/$APPNAME.app/embedded.mobileprovision"
#拷贝新的profile文件
cp "$RESIGN_PROVISION" "Payload/$APPNAME.app/embedded.mobileprovision"
#重新签名
/usr/bin/codesign -f -s "$RESIGN_CERT" --resource-rules "Payload/$APPNAME.app/ResourceRules.plist" "Payload/$APPNAME.app"
echo "$RESIGN_CERT"
#压缩IPA
zip -qr "$NEW_IPA.ipa" Payload
rm -r "Payload"
需要说明的是,RESIGN_PROVISION是mobileprovision文件的路径,我偷懒,直接放在当前目录下。
RESIGN_CERT是keychain里面的名字。
现在很流行用企业版证书签名,这种脚本应该用的挺多的。
PS: 最近对这个脚本完善了一下,RESIGN_PROVISION和RESIGN_CERT还是没有去掉哦