美文网首页第三方工具类
iOS ipa 包重新签名

iOS ipa 包重新签名

作者: Dosun | 来源:发表于2017-05-20 06:38 被阅读1239次

    昨天在和其他同事研究自动打包时,发现能够将 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
    不足之处,请指正,感恩!

    相关文章

      网友评论

      • 4ed059837eca:有没有设置过bundle id, 它怎么知道是什么值呢?
        4ed059837eca:又没有指定bundle id的缓解,它怎么知道是什么值呢?
      • iOS小武哥:您好,问一下,为什么要重新签名?有什么好处吗?
        Dosun:@刘志武 我司是将上架的包,用企业帳号测试

      本文标题:iOS ipa 包重新签名

      本文链接:https://www.haomeiwen.com/subject/uavuxxtx.html