Skip to content

Instantly share code, notes, and snippets.

@annidy
Created September 4, 2014 11:36
Show Gist options
  • Save annidy/3f5b41f485f325b53b83 to your computer and use it in GitHub Desktop.
Save annidy/3f5b41f485f325b53b83 to your computer and use it in GitHub Desktop.
ipa重新签名
#!/bin/sh
#获取第一个参数,也就是要用于重新签名的IPA名称
OLD_IPA=$1
#获取第二个参数,也就是重新签名之后的IPA名称
NEW_IPA=$2
if [ $# -ne 2 ]
then
echo "Usage: `basename $0` old.ipa new.ipa"
exit 1
fi
#所用的Provisioning Profile文件
RESIGN_PROVISION="Youxin7Developer.mobileprovision"
#所用的证书名称,一定是在keychain里面看到的名字
RESIGN_CERT="iPhone Developer: Kailiang Liu (DEU5UF8KH8)"
#解压IPA
unzip $OLD_IPA
#你的IPA解压之后,在Payload文件里面的那个文件夹名称后缀是.app
APPNAME=$(basename Payload/*.app)
#删除原来的签名和mobileprovision文件
rm -r "Payload/$APPNAME/_CodeSignature"
rm -r "Payload/$APPNAME/embedded.mobileprovision"
#拷贝新的profile文件
cp "$RESIGN_PROVISION" "Payload/$APPNAME/embedded.mobileprovision"
#重新签名
/usr/bin/codesign -f -s "$RESIGN_CERT" --resource-rules "Payload/$APPNAME/ResourceRules.plist" "Payload/$APPNAME"
echo "$RESIGN_CERT"
#压缩IPA
zip -qr "$NEW_IPA" Payload
rm -r "Payload"
echo "Done"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment