如何为ipa文件重新签名

作者: sprint | 来源:发表于2015-12-28 15:26 被阅读8270次

    如果你想把一个ipa文件安装到自己的手机上(别人发你的或者从第三方商店下载的...)你的手机如果没有越狱是无法正常安装的(排除企业证书分发), 我们可以通过为ipa重签名实现,原理是将我们自己的证书打进ipa。

    IPA重签名步骤

    下面我们以qq.ipa为例
    (1)解压qq.ipa 找到Payload文件

    unzip qq.ipa //命令行解压
    

    (2)将Payload目录中的_CodeSignature文件删除

    rm -rf Payload/*.app/_CodeSignature/
    

    (3)将自己app打包导出ipa文件 解压后找到 embedded.mobileprovision 文件 并替换qq.ipa中的embedded.mobileprovision 文件

    cp embedded.mobileprovision Payload/*.app/embedded.mobileprovision
    

    (4)重新签名,“iPhone Distribution: XXXXXX”这个指的是自己的embedded.mobileprovision文件用到的签名证书名称,在xcode或钥匙串中可以找到

    /usr/bin/codesign -f -s "iPhone Distribution: XXXXXX" --resource-rules Payload/*.app/ResourceRules.plist Payload/*.app/
    

    (5)重新打包

    zip -r qq.ipa Payload
    /rm -rf Payload/
    

    提示:只支持在mac上重新签名

    相关文章

      网友评论

      • ce673771ca4f:我做了个开源的签名工具,可以试试
        https://github.com/InjoyDeng/ResignTool
      • bbf4b3b9fd7c:developer证书可以重签名么
      • SuperRoot:Warning: --resource-rules has been deprecated in Mac OS X >= 10.10!
        iPhone Distribution:XXXXXX: no identity found

        大神,这个怎么解决的
      • NBeanN:请问一下大神,第四步的时候,我的报这个错是什么原因
        Warning: --resource-rules has been deprecated in Mac OS X >= 10.10!
        求大神解答一下:smile:
        梁大大大大大壮_:只要在命令行中输入这个弃用的命令就报错了,哪一步我忘了。。。现在在看signer
        NBeanN:@梁大大大大大壮_ 你是哪一步报的错?
        梁大大大大大壮_:这个你解决了吗,我查了一圈,无解
      • 春田花花幼儿园:楼主您好,第三步,我执行"cp embedded.mobileprovision Payload/*.app/embedded.mobileprovision"
        但是报错说 :
        cp: embedded.mobileprovision: No such file or directory

        我手动找 QQ.app里也没有embedded.mobileprovision这个文件
        请问我哪里做错了?我是把自己"embedded.mobileprovision"的防盗和 QQ.app 同级文件下, cd到 QQ.ipa执行的
      • XPorter:企业证书重签名可以安装,但是闪退,怎么解决?
        歌白尼:@Mark魚 那是证书过期了 需要重新生成
        MarkJY:@迪迪Ivan 我试了,受信用还是会闪退
        迪迪Ivan:@double_ 受信任下

      本文标题:如何为ipa文件重新签名

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