iOS逆向程序员iOS Developer

iOS的ipa重签名

2016-03-10  本文已影响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,签名并重新打包。

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文件重签
最简单的重签名应用的方法

上一篇下一篇

猜你喜欢

热点阅读