参考 :
//www.greatytc.com/p/f4cfac861aac
http://blog.csdn.net/skylin19840101/article/details/60583893
Xcode 生成 Archive 包的重签名 .ipa
提前准备:a. 可用证书 eg -> iPhone Developer:xxxx (xxxxxxx)
b. 从Xcode中拿一份 embedded.mobileprovision 文件
1. 解压 ipa 包 以xxx.ipa 为例子 解压都 出现 Payload 文件
eg: unzip xxxx.ipa -d "$TEMP_DIR"
2. 移除里面的签名文件
eg: rm -rf Payload/xxx.app/_CodeSignature/
3. 覆盖签名文件
eg: cp embedded.mobileprovision Payload/xxx.app/embedded.mobileprovision
4. 创建一份entitlements.plist文件 以及 路径
eg:
a. security cms -D -i embedded.mobileprovision > t_entitlements_full.plist
b. /usr/libexec/PlistBuddy -x -c 'Print:Entitlements' t_entitlements_full.plist > entitlements.plist
5. 注意事项
1.如果需要修改identifier的 则进入 Payload -> (解压 xxx)xxx.app -> info.plist 找到 bundleId 进行修改,要和描述文件、证书相匹配
2.要id和profile文件里面的id一致,发布证书和profile匹配才是真正的成功.不然提示安装失败。
6. 签名、输入一下命令
eg:
/usr/bin/codesign -f -s 'iPhone Developer: xxxx (xxxxxxxx)' --entitlements entitlements.plist Payload/xxx.app
结果:Payload/xxx.app: replacing existing signature 出现这个显示成功
测试:可以执行命令查看是否重签成功
1:codesign -d --entitlements - Example.app
2:$ security cms -D -i example.mobileprovision
3:codesign -vv -d example.app路径
第三个可以查看id和证书,比较常用,有任何问题的朋友可以留言·。
7. 替换后则手动压缩Payload成zip ,然后改为ipa即是最终版本