工具准备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