重簽名:
一、從新證書生成的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