赞
踩
尝试了网上的多种方法:
iResign工具、iOS App Signer工具都不能完成重签,只能弄出半成品,无法安装。
经过N多次测试,结论如下:
1、采用iResign工具,可以修改描述文件,但是描述文件是加密的,加密猜测是会校验内容长度,如果修改的内容和原内容长度是能够识别的。将描述文件中包名改掉,将 entitlements.plist文件中的包名改掉(和描述文件中的一致),勾选修改ID,输入新包名,重新签名,成功!但是不能安装。半成品。
2、采用iOS App Signer工具,证书随便选,描述文件选择以前失效的包名的,包名会自动被识别出来,start!成功,包名被修改,但是不能安装,也是半成品。
3、解压后修改info.plist中的包名:此方法可以修改包名,但是重新压缩后安装不了。半成品。
最终重签工具来了。
https://www.jianshu.com/p/a7bbcdf93174
上面的3种方式都实现了修改包名,猜测工具修改时,没有校验证书和描述文件是否对应一致。但是安装时会校验描述文件和证书是否一致,校验不通过,不能安装。此时我们只需要重新给包签证书和描述文件对应的就好了。
工具下载地址:
https://github.com/chenhengjie123/iOS_resign_scripts
下载后加压有3个脚本,前2个都无法使用了,用第三就好了。
将重签名脚本ios_resign_with_ipa 和 要重签名的ipa、mobileprovision放入同一个文件夹;
cd 到文件夹中
执行代码
$sh ios_resign_with_ipa $source_ipa_file $Developer_code_sign $mobileprovision $target_app_related_path
注意:
$source_ipa_file 待重签名的ipa名称。
$target_app_related_path 重签名后ipa的名称
$Developer_code_sign 用到的证书名称。
$mobileprovision 描述文件名称
Example(包含更换包名和重签):
步骤1:
打包导出ipa
步骤2:
显示包内容,修改info.plist中的包名
步骤3:
将解压文件压缩成ipa
zip -r test.ipa Payload
步骤4:
重新签名
$sh ios_resign_with_ipa Testerhome.ipa “iPhone Developer: hengjie chen (XXXXXXXX)” embedded.mobileprovision Testerhome-resigned.ipa
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。