iOS 重签名ipa包

第一步:用Xcode新建一个工程,用自己的证书打包出ipa文件。
in-house, Ad-Hoc

第二步:获取mobileprovision文件。
将(用自己证书打包的)ipa包进行解压。选中ipa包,右键 -> 打开方式 -> 解压,如下图所示:


iOS 重签名ipa包_第1张图片
image.png

解压完之后会生成一个Payload文件夹,点进去在文件上右键 -> 显示包内容。如图:


iOS 重签名ipa包_第2张图片
image.png

将图中标记的文件拷贝到桌面(或者其他地方)后面要用。

第三步:安装Homebrew
第四步:安装ruby
brew install ruby
第五步:安装sigh脚本
sudo gem install sigh
第六步:使用sigh脚本开始重新签名

1、在终端输入fastlane sigh resign
2、把要签名的ipa文件(路径、包名不要有中文)拖到终端窗口上
3、填写用来签名的证书(第一步中的证书,完整的名字:iPhone Distri...co.,ltd.(...Q8))名如图


iOS 重签名ipa包_第3张图片
image.png

4、把项目的配置文件.mobileprovision文件(自己刚刚打包ipa包中的mobileprovision证书)拖到终端窗口上
5、好了,resign脚本会自动更改bundel id,签名并重新打包。
完成后提示Successfully signed,新生成的包会自动替换原有文件。

Other
如果像是微信那种带多targets的应用,可以直接调用resigh.sh进行签名:

./resign.sh YourApp.ipa "iPhone Distribution: YourCompanyOrDeveloperName" -p "bundel id"=.mobileprovision -p "bundel id"=.mobileprovision -p "bundel id"=.mobileprovision -p "bundel id"=.mobileprovision resignedYourApp.ipa

比如重签名一个叫小屏的应用,里面包含一个XQTodayExtension.appex的通知栏插件,我们来看怎么签名:

1、先去导出两个mobileprovision文件,分别是应用和Plugin的,
这里我导出了1. mobileprovision和2. mobileprovision,
分别对应小屏ipa包的com.fenzi.xiaoqin和com.fenzi.xiaoqin.XQTodayExtension。

2、在2.6.3这个版本的sigh里,resigh.sh的位置是:
/Users/mac/.rvm/rubies/ruby-2.6.3/lib/ruby/gems/2.6.0/gems/sigh-2.0.1/lib/assets/resign.sh
运行resign.sh进行签名:

/Users/mac/.rvm/rubies/ruby-2.6.3/lib/ruby/gems/2.6.0/gems/sigh-2.0.1/lib/assets/resign.sh /Users/mac/Desktop/Test/TestSign/XiaoPing.ipa "iPhone Distribution: YourCompanyOrDeveloperName" -p "com.fenzi.xiaoqin"=/Users/mac/Desktop/Test/TestSign/connect/embedded.mobileprovision -p "com.fenzi.xiaoqin.XQTodayExtension"=/Users/mac/Desktop/Test/TestSign/tunnel/embedded.mobileprovision /Users/mac/Desktop/Test/TestSign/XiaoPing1.ipa

注:
"bundel id"=.mobileprovision
bundel id这个是原来的ipa
"bundel id"=.mobileprovision
bundel id这个是是原来的extension



iOS 重签名ipa包_第4张图片
qrcode_for_gh_487b2be2be8f_860.jpg

你可能感兴趣的:(iOS 重签名ipa包)