php ios ipa重签名,iOS软件包ipa重签名详解

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

本文主要讲解重签名,不涉及砸壳,如ipa包是在App Store下载的,则需要先进行砸壳。

准备工作

首先你得有个苹果开发者证书

然后准备一个mobileprovision描述文件,可以在你的https://developer.apple.com/account/ios/certificate/上创建和下载

609109d41628

image

或者从Xcode中导出。

将准备好的xxx.mobileprovision文件重名为embedded.mobileprovision。

使用软件工具进行重签名(需要更改包名Bundle Id)

iReSign

下载地址iReSign,使用反法非常简单:

1.选择ipa文件

2.选择准备好的mobileprovision文件。

3.entitlements.plist,这个无需选择,iReSign会自动生成。

4.这里填写mobileprovision所对应的bundle Id,并勾选修改ID,否则会重签名失败,此工具不支持在不修改bundle id的情况下重签名。

5.选择你的证书。

点击重签名就可以在原ipa文件同一目录生成以resigned.ipa结尾新的重签名的ipa文件。

ios-app-signer

使用codesign命令进行签名(无需修改包名 Bundle Id)

生成 entitlements.plist 文件

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

使用iReSign对进行重签名,然后将重签名后的包进行解压,得到entitlements.plist文件

通过mobileprovision文件生成:

首先生成一个完整的plist文件

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

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

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

重签名

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

解压ipa包

unzip xxx.ipa

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

删除签名文件

rm -rf Payload/xxx.app/_CodeSignature/

替换配置文件

cp embedded.mobileprovision Payload/xxx.app/

签名

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

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

打包

zip -r resign_xxx.ipa Payload/

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值