重签名:
一、从新证书生成的ipa的embedded.mobileprovision(或从苹果开发者账号下载新证书的embedded.mobileprovision文件)中提取出entitlements.plist权限文件
1》security cms -D -i embedded.mobileprovision > temp.plist
2》
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' temp.plist > entitlements.plist(错误的写法:会报错:Print: Entry, ":Entitlements ", Does Not Exist,报错且能生成entitlements.plist,但是用此entitlements.plist去进行下一步依旧会报错:entitlements.plist: unrecognized blob type (accepting blindly)
entitlements.plist: invalid length in entitlement blob);
/usr/libexec/PlistBuddy -c "Print :Entitlements" temp.plist -x > entitlements.plist(正确的写法)
二、将旧的ipa包的info.plist中的Bundle identifier换成新的Bundle identifier(如果没有修改Bundle identifier直接进行四步(重签名命令)不会报错,但是生成的新包,用iFunBox安装会失败,即重签名失败)
三、删除旧包的_CodeSignature文件夹:
四、查看可用证书:
1》security find-identity -v -p codesigning
五、对app包进行签名:
1》codesign -f -s "你的证书的名称" --entitlements entitlements.plist Payload/blabla.app
命令行出现:replacing existing signature 生成新的_CodeSignature文件夹
codesign -f -s 55189D129F4221DF80536CBF3C185F7243A4FDB5 --entitlements entitlements.plist Payload/test.app