iOS软件包ipa重签名

ipa是iOS系统app安装包,如果我们想对App Store上的软件进行修改然后重新安装到手机上、或者对已有的APP进行企业分发而不更改包名、或者手机上安装多个相同的APP等都需要进行重签名。

1.首先准备一个mobileprovision描述文件,可以从开发者账号下载或者从Xcode中导出。将准备好的xxx.mobileprovision文件重命名为embedded.mobileprovision。
2.使用codesign命令进行签名(无需修改包名 Bundle Id)

我们有两种方式获得entitlements.plist文件:

  1. 使用iReSign对进行重签名,然后将重签名后的包进行解压,得到entitlements.plist文件
  2. 通过mobileprovision文件生成:
    首先生成一个完整的plist文件
security cms -D -i embedded.mobileprovision > embedded.plist

接下来执行

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

就可以生成我们需要的entitlements.plist了。

重签名

一切准备就绪,接下来开始进行签名操作了

1.解压ipa包

unzip xxx.ipa

tip:xxx.ipa为你的需要重签名的包。

2.删除签名文件

rm -rf Payload/xxx.app/_CodeSignature/

3.替换配置文件

cp embedded.mobileprovision Payload/xxx.app/

4.签名

codesign -f -s "你的证书的名称" --entitlements entitlements.plist Payload/xxx.app

tip:证书的名称你可以通过mac自带的keychain Access钥匙串访问程序查看电脑上的证书。

5.打包

zip -r resign_xxx.ipa Payload/

tip:resign_xxx.ipa名字是随便起的。

大功告成,你可以顺手解压出来的文件清理删除掉rm -r Payload

猜你喜欢

转载自blog.csdn.net/ZhongLv_HoneyMoon/article/details/90768231