為什么重簽名###
重簽名可以把越獄市場上的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,而且更新不了??赡躦em用的是淘寶的源??梢該Q一個源,我這里換成的是 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