苹果ipa企业包如何重签名

3,377 阅读1分钟

工具准备

1、codesign的命令行工具来实现重签名。(Mac自带)

2、从 developer.apple.com 获取企业账号有效证书,用于签名使用。"iPhone Distribution: ***",如果没有企业账号可借助第三方平台(如:app.fubi.hk)获得苹果企业签名服务,这也是一个不错的办法。

3、从 developer.apple.com 获取描述文件,用于签名使用。***.mobileprovision

4、从 developer.apple.com 注册签名用包名,例如 com.***.***,用于重新签名 com.***.***2

4、需要重签名的ipa包

生成 embedded.mobileprovision 文件

修改文件名,修改 ***.mobileprovision 为 embedded.mobileprovision

生成 entitlements.plist 授权机制文件

1、通过security命令,从embedded.mobileprovision文件中生成一个完整的plist文件

终端命令:

security cms -D -i "mobileprovision文件" > "entitlements文件"

具体操作命令:

security cms -D -i /../embedded.mobileprovision > entitlements_full.plist

2、获取其中的Entitlements字段

终端命令:

/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' entitlements_full.plist > entitlements.plist

3、文件生成后放一边,下面的重签名步骤会用到

解压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