公司业务需求,需要将我们的包给部分公司使用,但是不给源码,并且需要我们开发出重签名教程,但是由于公司的app有ShareExtensio,签名完成后总是无法安装。
我的具体操作步骤流程如下:
1.用公司自己的Appstore账号打了一个的不带插件的的ipa包。
2.用另一个appstore账号配置的 embedded.mobileprovision,和插件的 embeddedEX.mobileprovision
3.使用embedded.mobileprovision 通过security cms -D -i embedded.mobileprovision > embedded.plist
命令生成embedded.plist
4.使用/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' embedded.plist > entitlements.plist
生成创建 entitlements.plist 文件
5.修改解压后的ipa包里的info.plist的BoundleID和 embedded.mobileprovision中的一致。
6. codesign -f -s “iPhone Distribution: XXX” Payload/解压出来的.app/Frameworks/xxxx.framework
重签名framework
7.codesign -f -s "iPhone Distribution: XXX" --no-strict --entitlements=entitlements.plist
Payload/解压出来的.app,重签名app
8.zip -r new.ipa Payload 打包后可以安装使用。
9.对带shareExtension的adhoc包重复2-5操作。并且embeddedEX.mobileprovision 生成插件的相关plist,并修改plugins/info.plist的BoundleID,同时embeddedEX.mobileprovision替换插件目录下的embedded.mobileprovision
10.先对插件中appex签名,(appex里没framework);然后重复6-7操作主程序的签名。
11.打包安装,安装总是提示

(可以去确定证书和配置文件都没选择错误)尝试了多次也没解决带插件的ipa包的签名。
12.使用另一个签名方法也失败
后来直接sigh resign的命令行直接操作。
sigh resign -p cn.main.ex当前=embeddedEx.mobileprovision -p cn.main=embedded.mobileprovision
最后系统提示

签名成功。安装也是同样提示。
网友评论