使用iResign重签ipa
当我们使用app store或者其他来源得到的ipa,特别是一个app store的ipa,如果想安装到自己的手机上,是不能直接安装的。有时候我们想用企业证书测试分发一个已经上架app store的ipa,不修改bundle id是不能直接安装的。这个时候就需要重签名。我遇到情况是,公司的app已经上架app store,这个时候公司需要改账号,变成企业账号,如果直接换过去,那很多第三方的统计、推送都需要重新上传证书,修改bundle id。很费时间,也不划算。所以这个时候需要用到重签名。
亲测,mac系统10.12.4,手机ios10.3.2。
iResign下载地址:https://github.com/maciekish/iReSign
下载之后直接使用软件,打开之后:
经过测试,在新系统里面,这些都需要填写。
其中mobileprovision地址就是开发者平时开发的时候申请的描述文件。配套的证书也都需要保存在钥匙串里面去。
iReSign_identifiers.png
需要的plist文件里面,字段的格式:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>PREFIX.yourappBundleID</string>
<key>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>PREFIX.yourappBundleID</string>
</array>
</dict>
</plist>
记住这里的application-identifier和keychain-access-groups,使用的就是上面图片中开发者注册证书的时候显示的Prefix和ID的组合。这些都是不能错的,也不能省略。否则重签名不成功。
如果你申请的证书没有推送功能,删除
<key>aps-environment</key>
<string>production</string>
这两行,本人在弄的时候就是因为这两句没有删除,不能安装到手机上。
最后选择描述文件所对应的证书。