工具準備app
一、codesign的命令行工具來實現重簽名。(Mac自帶)工具
二、從 developer.apple.com 獲取企業帳號有效證書,用於簽名使用。"iPhone Distribution: ***",若是沒有企業帳號可藉助第三方平臺(如:app.fubi.hk)得到蘋果企業簽名服務,這也是一個不錯的辦法。命令行
三、從 developer.apple.com 獲取描述文件,用於簽名使用。***.mobileprovisioncode
四、從 developer.apple.com 註冊簽名用包名,例如 com.***.***,用於從新簽名 com.***.***2ip
四、須要重簽名的ipa包it
生成 embedded.mobileprovision 文件io
修改文件名,修改 ***.mobileprovision 爲 embedded.mobileprovisionmobile
生成 entitlements.plist 受權機制文件打包
一、經過security命令,從embedded.mobileprovision文件中生成一個完整的plist文件終端
終端命令:
security cms -D -i "mobileprovision文件" > "entitlements文件"
具體操做命令:
security cms -D -i /../embedded.mobileprovision > entitlements_full.plist
二、獲取其中的Entitlements字段
終端命令:
/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' entitlements_full.plist > entitlements.plist
三、文件生成後放一邊,下面的重簽名步驟會用到
解壓ipa包
unzip game.ipa
重簽名
把上面生成的entitlements.plist寫入
/usr/bin/codesign --continue -f -s "證書" --entitlements "entitlements文件" "須要簽名的app文件"
通常操做:
/usr/bin/codesign --continue -f -s "iPhone Distribution: ***" --entitlements entitlements.plist Payload/game.app
打包
zip -r sigined.ipa Payload
其餘
如下命令獲取對應app的entitlements信息並用打印,打印內容可用於建立entitlements.plist文件
codesign -d --entitlements - Payload/XXX.app