IPA 重签名

注意:这篇文章所记录的技巧仅供大家交流学习使用,不要像快用那样用作盗版分发

在日常生活中,经常会有朋友丢给你自己写的ipa,或者有的app没有上架appStore,只有一个越狱渠道的版本。

这个时候如果我们设备没有越狱的话,可以通过重签名的方法来将这个app部署到我们的开发机上,所谓开发机就是安装了证书的手机。

对于重签名,可以通过一个软件InstaSign,来自动化实现这个过程。但是有个很大的弊端,它会破坏掉我们的发布环境,即替换了/usr/bin/codesign。

这个时候,我们可以手动实现这个流程。

我们这里用布卡漫画来举例:

  • 解压ipa,露出Payload 文件

  • 将Payload 文件中的 _CodeSignature 文件夹彻底删除

  • 从你的一个能正确部署到手机上的项目xxxxx.app中拷贝 embedded.mobileprovision 文件

  • 去keychain 中搜索iPhone 如下图:

复制和第三步同样的一个证书的名称:iPhone Developer: XXXXXX (XXXXXX) 这样的一个结构,如果是从企业证书发布环境下拷贝的就是iPhone Distribution: xxxxx (xxxxxx)。

  • 在命令行下,cd到 Payload 文件夹之外。
1
/usr/bin/codesign -f -s "iPhone Developer: XXXXXXXX (XXXXXXXX)" --resource-rules bukaios.app/ResourceRules.plist bukaios.app

如果一切正确,则会提示:bukaios.app: replacing existing signature

  • 打包回ipa, zip -r buka.ipa Payload
  • 在XCode-Organzier-Devices 左侧的已连接设备中选择Apllications-Add
  • 不出意外就能安装成功。

  • 如果喜欢,可以把这整个流程写成一个批处理。

再一次强调,这是一把双刃剑,千万不要用它来做盗版分发。

iOS, ipa

Comments