给ipa文件重新签名,首先我们需要申请企业证书,然后需要如下准备工作。
配置文件:embedded.mobileprovision
进入苹果开发者网站会员中心,依次进入如下图Distribution页面。
我们会看到如下信息,我们需要记录下App ID,一般为com.XXX.XXX,将iOS Provisioning Profiles (Distribution) Donwload到本地,保存为embedded.mobileprovision。
关于如何申请企业证书,创建Profile,请参考苹果官方文档。
证书信息
在本地电脑上,打开钥匙串访问,我的证书,找到Distribution(必须) 企业证书,如下图所示,需要记录下用户ID和常用名称。
命令行安装工具:fruitstrap
fruitstrap工具可以在命令行安装ipa文件到手机上,好处是可以看到安装进度,若安装失败,可以知道在什么位置失败的,便于查找原因。以下是git下载地址。
git clone https://github.com/sgleadow/fruitstrap-demo.git
授权文件:entitlements.plist
我们还需要生成一个授权文件,授权文件的作用是告诉签名工具如何对app进行签名。授权文件内容如下,要用到前面准备好的用户ID,App ID。
到此所有的准备工作就完成了,下面我们把需要重签名的ipa解压缩,会得到一个Payload的目录,接下来就可以开始对App重新签名了。
修改 Info.plist
修改Bundle ID为前面准备好的App ID,保存。
删除旧的签名文件和配置文件
删除App目录下的_CodeSignature,文件夹和embedded.mobileprovision文件,将前面准备好的embedded.mobileprovision拷贝到App目录下。
签名
我们用codesign命令,对app重新签名。证书使用前面记录下的证书常用名称。—entitlements使用前面生成的授权文件。
codesign -f -s "iPhone Distribution: Beijing XXXXXX Technology Co., Ltd." --entitlements entitlements.plist Payload/XXX.app
打包
zip -r XXX.ipa Payload
安装
fruitstrap-demo/怕孤单的外套/fruitstrap -d XXX.ipa