iOS的ipa重签名

作者: 齐滇大圣 | 来源:发表于2016-03-10 13:09 被阅读11226次

    为什么重签名###

    重签名可以把越狱市场上的app重新用我们自己的开发者证书进行签名,然后我们就可以在我们不越狱的手机上安装越狱应用了。

    如何重签名###

    在网上找重签名,很多都说使用IResin,但是不知道为什么总是重签名失败。提示:warning: --resource-rules has been deprecated in Mac OS X >= 10.10!


    错误信息

    找了很久终于在iOS应用逆向工程论坛里看到有一篇最简单的重签名应用的方法。使用的是fastlane/sign脚本

    • 使用方法

    安装好brew,先用brew安装ruby,然后用gem安装sigh。
    1、brew install ruby
    2、sudo gem install sigh

    使用就非常简单了:
    1、输入sigh resign,回车
    2、把要签名的ipa文件拖到窗口上,回车
    3、填写用来签名的证书,回车
    4、把embedded.mobileprovision文件拖到窗口上,回车
    5、好了,resign脚本会自动更改bundel id,签名并重新打包。

    • 注意
      1、ipa包名不要有中文。

    2、像微信这样多targets的ipa无法用上述方法签名,文章里说用resign.sh进行签名。
    ./resign.sh YourApp.ipa "iPhone Distribution: YourCompanyOrDeveloperName" -p <path_to_provisioning_profile_for_app>.mobileprovision -p <path_to_provisioning_profile_for_watchkitextension>.mobileprovision -p <path_to_provisioning_profile_for_watchkitapp>.mobileprovision -p <path_to_provisioning_profile_for_todayextension>.mobileprovision resignedYourApp.ipa

    举个例子说明:重签名一个叫乐动力的应用,里面包含一个XQTodayExtension.appex的通知栏插件,我们来看怎么签名:
    1、先去导出两个mobileprovision文件,分别是应用和Plugin的,这里我导出了1.mobileprovision和2.mobileprovision,分别对应cc.fenzi.xiaoqin和cc.fenzi.xiaoqin.XQTodayExtension。
    其中1.mobileprovision和2.mobileprovision这两个配置文件从你自己的开发者账户里面导出。

    2、在1.4这个版本的sigh里,resigh.sh的位置是:
    /usr/local/lib/ruby/gems/2.3.0/gems/sigh-1.4.0/lib/assets/resign.sh
    运行resign.sh进行签名:
    resign.sh /Users/Dylan/Code/LDL/xiaoqin.ipa "iPhone Distribution: YourCompanyOrDeveloperName" -p cc.fenzi.xiaoqin=/Users/Dylan/Code/LDL/1.mobileprovision -p cc.fenzi.xiaoqin.XQTodayExtension=/Users/Dylan/Code/LDL/2.mobileprovision /Users/Dylan/Code/LDL/xiaoqin2.ipa

    3、很多人安装后sigh的版本是1.3.1,而且更新不了。可能gem用的是淘宝的源。可以换一个源,我这里换成的是 http://rubygems.org/,可以更新到1.4.1

      国外的源
      http://rubygems.org/
      http://gems.github.com
      http://gems.rubyforge.org
      国内的源
      http://ruby.taobao.org 
    
      显示当前使用的
      sourcesgem sources
    
      添加一个
      sourcegem sources -a url地址
    
      删除一个
      sourcegem sources -r url地址
    
      更新
      source cachegem sources -u
    

    参考###

    iOS证书及ipa包重签名探究
    利用iReSign和开发者账号对ipa文件重签
    最简单的重签名应用的方法

    相关文章

      网友评论

      • Python数据分析实战:用这篇文章的方法签名,必须要砸壳吗
      • Python数据分析实战:看了你的 利用iReSign和开发者账号对ipa文件重签 软件一直运行,没有结果是什么原因
      • 5de80c8472c4:如果我自己使用开发证书通过xcode build一个ipa出来,然后针对该ipa再进行重签名为企业版ipa,可以吗?
        5de80c8472c4:并且,xcode build出来的ipa是个人开发者账号下 developer签名的,现在想转为发布版,能否行得通?
      • AirSars:你好,我直接PP助手下下来然后重签名可以,但是一旦注入任何一个dylib以后再签名就会报错
        请问什么原因
        齐滇大圣:@AirSars 如果是微信的话是不行了,它好像做了什么处理
      • fb2bcf0a8888:我的是IOS9.3.3下 砸壳后签名 安装成功 但是出现闪退
      • bde04638cca8:我签好了,结果安装上去是灰色的,打不开
        牵线小丑:@MomoPush 你好,请问你是用什么证书呢,我这边提示:Successfully signed签名成功,但是用助手安装不上
        bde04638cca8:十分感谢,终于成功了。原来是要用测试证书。再次感谢分享
        bde04638cca8:Successfully signed 提示签名成功了。这是怎么回事啊
      • 95114676ad51:我咋签完名安装上闪退啊。
        齐滇大圣:@祖师爷 是的,apple store上下载的需要砸壳,越狱版的不需要
        95114676ad51:@齐滇大圣 这个应该没有。我是拿一个比较老的游戏来弄的。应该没有 watch plugin。看了有人回复说还需要脱壳。是不是重签名的方法都是建立在已经脱壳的前提下操作的?
        齐滇大圣:@祖师爷 可能是没有全部签名,有watch,plugin都需要单独签名的
      • 嗷大喵:从app store里面下载的ipa 是不是需要先用dumpdecrypted砸壳 然后再用上面的方式进行签名?
        齐滇大圣:@嗷大喵 是的

      本文标题:iOS的ipa重签名

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