为什么重签名###
重签名可以把越狱市场上的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