简介
利用Xcode的命令security和codesign处理ipa重签。重签名与Xcode打包签名本质上是一个原理,具体流程如下,提前需要准备以下2个文件:
| 文件名 | 备注 |
|---|---|
| Provisioning Profile | 描述文件,会像Xcode一样双击安装在电脑上的描述文件,用命令行可以列举出来,可以过滤过期的证书 |
| Signing Certificate | 选择对应的证书,通用会检索系统钥匙串安装的可用的证书,会自动过滤掉过期的 |
使用的命令
添加p12证书
1 | security import /Users/admin/Desktop/dis.p12 -P '123456' |
解压ipa包
1 | unzip yourApp.ipa |
修改Payload/yourName.app中的icon图标、info.plist文件的信息等
(如有需要),比如版本号,应用名称等
删除之前的签名 -> .CodeSignature
1 | rm -rf ./Payload/yourAppName.app/_CodeSignature |
用授权文件生成entitlements.plist文件
1 | // 查看授权文件内容命令 |
注:本步骤的 Entitlements 属性内容 非常重要,不能多字段,否则重签是有效,但导致ipa包安装失败~
替换描述文件
1 | // 把新的描述文件复制替换到解压后的目录中。 |
如果需要查看系统中已经保存的描述文件:“~/Library/MobileDevice/Provisioning\ Profiles/”
重新签名
1 | // 这一步需要读取你钥匙串中的开发者证书,可以用以下命令查看下有哪些证书: |
压缩Payload,就完成了重签
1 | zip -ry ABC.ipa Payload |
验证:查看签名信息并在真机上进行安装
1 | // 验证签名正确性: |
删除安装的P12证书
1 | security delete-certificate -c "iPhone Distribution: xxxxxx" |
其他命令
1 | // 检查一下是否安装了AppleWWDRCA.cer: |
参考引用
- HanProjectCoder/ResignForiOS: ipa resign
- fastlane/sigh at master · fastlane/fastlane
- cjsliuj/Scalpel: A MacOS app with resign, dylib link injection/delete, ipa metadata edit.
- Scalpel的实现:一款集动态库注入与删除、IPA重签名、IPA元数据修改为一体的MacOS App
- cfgutil man page
- shell - install .p12 or .cer in console macos - Stack Overflow
- reSignature/TFSignature.py at master · hongbaoshi/reSignature
- iOS开发中的应用打包方式及重签名的一些总结 - 简书
- iOS代码签名与重签名 · 0x5e的博客
- Technical Note TN2206: macOS Code Signing In Depth
本文作者:
Leoli
最后更新: 2023年12月02日 20:24:09
本文链接: http://example.com/post/ebb4149f.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!
最后更新: 2023年12月02日 20:24:09
本文链接: http://example.com/post/ebb4149f.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可,转载请注明出处!