ipa 重签名

参考 :

        https://www.jianshu.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即是最终版本

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