安装重签工具 fastlane -> sigh
brew install ruby
sudo gem install sigh
使用
输入sigh resign,回车
把要签名的ipa文件拖到窗口上,回车
填写用来签名的证书, 回车
把embedded.mobileprovision文件拖到窗口上,回车
resign脚本会自动更改bundel id,签名并重新打包。
如果像是微信那种带多targets的应用,可以直接调用resigh.sh进行签名:
./resign.sh YourApp.ipa "iPhone Distribution: YourCompanyOrDeveloperName" -p "bundel id"=<path_to_provisioning_profile_for_app>.mobileprovision -p "bundel id"=<path_to_provisioning_profile_for_watchkitextension>.mobileprovision -p "bundel id"=<path_to_provisioning_profile_for_watchkitapp>.mobileprovision -p "bundel id"=<path_to_provisioning_profile_for_todayextension>.mobileprovision resignedYourApp.ipa
详细举个例子说明
重签名一个叫乐动力的应用,里面包含一个XQTodayExtension.appex的通知栏插件,我们来看怎么签名:
- 先去导出两个mobileprovision文件,分别是应用和Plugin的,这里我导出了1. mobileprovision和2. mobileprovision,分别对应com.fenzi.xiaoqin和com.fenzi.xiaoqin.XQTodayExtension。
- 运行resign.sh进行签名:
/usr/local/lib/ruby/gems/2.3.0/gems/sigh-1.4.0/lib/assets/resign.sh
resign.sh /Users/Dylan/Code/LDL/xiaoqin.ipa "iPhone Distribution: YourCompanyOrDeveloperName" -p com.fenzi.xiaoqin=/Users/Dylan/Code/LDL/1.mobileprovision -p com.fenzi.xiaoqin.XQTodayExtension=/Users/Dylan/Code/LDL/2.mobileprovision /Users/Dylan/Code/LDL/xiaoqin2.ipa
保存下来的xiaoqin2.ipa就是重签之后的文件。如果有苹果手表的文件,也同理处理。
sign脚本还有很多实用的功能,比如直接申请ADHOC签名证书,申请Developent签名证书等等。而sign脚本是fast lane系列工具中的一个,有兴趣可以研究下,功能非常强大。(非开发者账号也能重签)
Entitlements.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>123456.com.autogetredenv.demo</string>
<key>com.apple.developer.team-identifier</key>
<string>123456</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>123456.com.autogetredenv.demo</string>
</array>
</dict>
</plist>
网友评论