iOS ipa文件重签名

最近遇到一个问题就是我们公司用自己的企业账号上的证书打包的ipa文件每过一年都需要重新重新把现在的一些ipa文件重新打包发布管理,这种做法效率其实很低下,因为有可能我们引用的三方库已经升级更新后会造成工程不可用,需要花费很大精力去进行同步升级工程代码才可以,那么我们其实有更好的方法去解决这种困境,我们可以通过对ipa文件重签名来替代重新打包(ipa)这种比较传统笨拙的方式来解决重签名的问题。

上面这段写的太啰嗦了,其实意思是企业证书或描述文件到时间后会过期,过期后造成原来的已经发不到MDM管理平台的ipa包和用户已经下载的包都不可用,这个时候我们就需要更新证书或描述文件来解决这个问题,通过重新使用源代码工程重新通过XCode更换证书或描述文件解决或者通过直接使用工具来重新对原有ipa重新签名来解决,总之两种方式都可以,下面我们着重研究一下使用原有ipa文件替换企业证书和描述文件重签名的方式。

因为我们自己使用的是企业账号并且我们不是盗用别人的包来使用,我们就不用做ipa包的砸壳iOS逆向了。

一、准备重签名ipa需要的文件内容

1. 企业证书的准备

证书必须是通过申请证书的电脑导出的p12文件,因为只有这样才会带上专用密钥,这样才能通过双击正确安装到钥匙串实现信任认证。

注:公司证书和个人证书其实也可以,但重签名出来的包只能安装到配置文件对应添加过的测试设备,太局限了,我们在这里不多做研究。

2. 下载对应签名的描述文件

需要通过苹果企业账号平台下载mobileprovision文件,并修改名字为embedded.mobileprovison

3. 准备好我们需要重签名的ipa文件

接下来到我们主角出场了,我们需要操作的对象老的ipa文件我们需要提前准备好。

二、 准备重签名需要的环境

1. 安装 homebrew

命令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 安装 ruby

命令:brew install ruby更新 ruby 版本

3. 安装 sigh

命令:sudo gem install sigh

如果出错那就换成gem install sigh安装过程是漫长的。(在安装 sigh 之前,你得检查 gem的镜像源,现在一般为https://gems.ruby-china.org如果提示 timeout 还是啥的,请把 https 的 s 去掉,重新添加) 设置可以参考Ruby China

三、 开始重新签名

1. 把需要重签名的ipa文件和下载重名成embedded.mobileprovison配置文件放到同一个目录

记住这个配置文件一定要重名成固定我们所指出的这个名字才可用。

2. 在命令行使用cd命令到这个我们准备好的目录,并执行sigh resignfastlane sigh resign命令

3. 执行完签名命令会要求我们输入Signing Identity

这个Signing Identity是我们在输入执行sigh resignfastlane sigh resign命令后会列出我们所有开发者证书的16进制串,我们可以复制对应证书的16制串粘贴到这回车就可以了,剩下就等着命令自动对保内所有的Frameworks重新签名。

WeChat0b9eb1c5ba9e9ea14cff326a51233156

0 0 vote
Article Rating
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x