今天来聊下给包进行签名
ipa 重签名的作用,不必重新打包,和配置其它第三方获取 appkey 等操作,直接重签名之后依然可以拥有这些功能,更快的发布测试或者灰度版本。当然了解重签名,对自己app的安全也有很大原意义,只有了解重签名才能更好的保护app。
准备工作
1、待重签名ipa包(xxxx.ipa),证书和配置文件(可以使用个人开发者账号,本文介绍的即这个方式)创建文件夹 /resign ,将ipa包放进文件夹 /resign
2、生成 entitlements.plist 文件
打开Xcode 创建一个工程hello,该工程使用个人开发者账号run出包,进Xcode的Product文件夹拿出生成的包hello.app 解压 拿出里面的文件 embedded.mobileprovision 将该文件放入文件夹 /resign
将embedded.mobileprovision 转为plist文件
security cms -D -i embedded.mobileprovision > embedded.plist
转出来的plist文件样式如下

从上面plsit文件取出我们需要的 entitlements (截图中红色部分)
执行
/usr/libexec/PlistBuddy -x -c 'Print:Entitlements' embedded.plist > entitlements.plist
开始重签名
如下操作都是在 /resign cd resign
1、解压 xxxx.ipa 包(如果无法直接解压,可以改后缀改为 xxxx.zip)解压后取出 xxxx.app
unzip xxxx.ipa
2、删除原有签名
rm -rf Payload/xxxx.app/_CodeSignature/
3、替换配置文件
cp embedded.mobileprovision Payload/xxx.app/
4、更改包里的 bundleId 打开包里的 info.plist 改为hello工程对应额 bundleId
5、签名
证书的名称你可以通过mac自带的钥匙串查看
codesign -f -s "Apple Development: xxxxxx@xx.com (LYERYXNM94)" --entitlements entitlements.plist Payload/xxxx.app/
终端输出: Payload/xxxx.app/: replacing existing signature
即表示签名成功
5、打包
zip -r resign_hello.ipa Payload/
6、此时就可以使用xcode 安装上面的ipa了 如果安装不成功可以检查下哪里出了问题,经常出问题是忘了第4步
























![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)