ProxiteeProxitee12-10 16:34

iOS ipa 包重新签名

昨天在和其他同事研究自动打包时,发现能够将 ipa 包重新进行签名。what's hell? how to achieve that? 带着一系列问题,一步步终于把功能实现。避免以后忘记和分享的精神,写了此篇文章。

一、旧版本的 ipa 包重新签名

ios app 开发中ipa重新签名步骤介绍-备中介绍打包的五个步骤:

  • 步骤1 :
    unzip YourApp.ipa
  • 步骤2:
    rm -rf Payload/YourApp.app/_CodeSignature
  • 步骤3:
    cp InHouse.mobileprovision Payload/YourApp.app/embedded.mobileprovision
  • 步骤4:
    /usr/bin/codesign -f -s "iPhone Distribution: YourCompanyName" --resource-rules Payload/YourApp.app/ResourceRules.plist Payload/YourApp.app
  • 步骤5:
    zip -r YourApp_inhouse.ipa Payload
    是不是很 easy ? 但是照着提示的步骤来做,做到步骤 4 就会出问题。提示
warning: --resource-rules has been deprecated in Mac OS X >= 10.10!

于是乎旧版本的 ipa 包重新签名被放弃。

二、新版本的 ipa 包重新签名

mac用终端对ipa包重新签名,里面讲述 ipa 包重新签名五个步骤:

  • 1、在终端输入sigh resign,回车
  • 2、把要签名的 ipa 文件拖到窗口上,回车
  • 3、填写用来签名的证书,回车
  • 4、把项目的配置文件.mobileprovision文件拖到窗口上,回车
  • 5、好了,resign脚本会自动更改bundel id,签名并重新打包。
    总之,通过 sigh 脚本,通过重新配置 ipa 包的 .mobileprovision文件 和 team。按照上面的做法,是能生成 ipa 包的。但是如何判断 ipa 包是重新签名的呢?另外用上面的操作,能修改 ipa 的bundle id 吗?重新签名大 ipa 包要花多少时间?fastlane 能不能进行重新签名?

三、升级版本 ipa 包重新签名

ipa 包重新签名是参照的上面 新版本的 ipa 包重新签名。如何查看 ipa 中 bundle id 和 签名信息呢?用如下两个命令。

#1. 先解压 ipa 包
unzip your.ipa

#2. 读取 ipa 包内容
codesign -vv -d your.app

读取 ipa 包的结果如下图

Snip20170520_1.png

上图显示,重新签名能够修改 ipa 包的 bundle id。另外 65M 的 ipa 包重新签名花大约 1分20秒。能否用 fastlane 完成自动打包,答案是百分之百(虽然没有用它完成打包),如下图,fastlane action action 有重新签名,fastlane 官网
Snip20170520_2.png

不足之处,请指正,感恩!

官场书屋二维码

小额赞赏

000
评论