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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 ap...
    红发_KVO阅读 72,963评论 24 64
  • 在工作中分发内测应用是经常遇见的,常见的方式有:TestFlight,用企业级开发者账号,搜集UDID打包等方式,...
    MarkMiao阅读 2,665评论 1 3
  • 为什么重签名### 重签名可以把越狱市场上的app重新用我们自己的开发者证书进行签名,然后我们就可以在我们不越狱的...
    齐滇大圣阅读 17,464评论 9 23
  • 一.理解iOS签名机制 网上有很多资料,这里不展开细说,重点参考这三篇文章: https://www.objccn...
    huig游影阅读 1,248评论 0 0
  • 一.理解iOS签名机制 网上有很多资料,这里不展开细说,重点参考这三篇文章: https://www.objccn...
    huig游影阅读 1,066评论 0 1