为 ipa 包重新签名
- iOS 安全攻防
- iOS App 签名的原理
- iOS App 签名的原理 && App 重签名(一)
- iOS App 签名的原理 && App 重签名(二)
- iOS App 签名的原理 && App 重签名(三)
一个 ipa 包想安装到自己的手机上,如果所用的打包证书不包含你的设备 UDID,或者对方不是使用 In House 类型的企业级发布证书打出来的包,是无法正常安装的, 可以通过为 ipa 重签名,将包含自己设备 UDID 的证书打进 ipa 包来实现正常安装。
ipa 包重新签名步骤
下面以 qq.ipa 为例
1、解压 qq.ipa ,或在终端运行如下解压命令,进入 Payload 目录
1
unzip qq.ipa //命令行解压
2、将 Payload 目录中的 _CodeSignature 文件删除
1
rm -rf Payload/*.app/_CodeSignature/
3、将任意一个自己项目打出来的 ipa 包解压后找到 embedded.mobileprovision 文件,替换 qq.ipa 中的 embedded.mobileprovision 文件
1
cp embedded.mobileprovision Payload/*.app/embedded.mobileprovision
4、重新签名,“iPhone Distribution: XXXXXX”这个指的是自己的embedded.mobileprovision文件用到的签名证书名称,在 Xcode 或钥匙串中可以找到
1
/usr/bin/codesign -f -s "iPhone Distribution: XXXXXX" --resource-rules Payload/*.app/ResourceRules.plist Payload/*.app/
5、重新打包
1
2
zip -r qq.ipa Payload
/rm -rf Payload/
为了方便,有以下重新签名工具
Distribution 两种证书的区别
- In House :不限设备数量
- Ad Hoc :限制最多安装在100台设备上
原文
本文由作者按照 CC BY 4.0 进行授权