iOS打包后对ipa包重签名

第一步:解压iPa包

unzip example.ipa

第二步:替换证书配置文件。配置文件名必须为embedded.mobileprovision

cp embedded.mobileprovision Payload/example.app

第三步:修改重签后ipa包的bundle identifier(这一根据情况可以跳过)

open Payload/example.app/info.plist

第四步:重签名。

codesign -f -s "iPhone Distribution: Hangzhou Ouer Technology Co., Ltd" --entitlements entitlements.plist Payload/example.app

第五步:将Payload重新打包

zip -r example_resign Payload

打包完毕!如果以上对你都一目了然,这篇文章你就读完了!


简单总结一下:重签都需要需要准备哪些东西?
待重签ipa,配置文件(embedded.mobileprovision),授权文件(entitlements.plist),证书名称。一共四样!

下面说一下授权文件。授权文件长这样的:

Executable=/Users/chiyou/Desktop/xxxx/Test 2016-05-04 00-11-33/Payload/Test.app/Test
??qq?



    application-identifier
    V9LX9F46VG.com.ouer.www.Test
    com.apple.developer.team-identifier
    V9LX9F46VG
    get-task-allow
    
    keychain-access-groups
    
        V9LX9F46VG.com.ouer.www.Test
    


详细信息参考代码签名探析


关于iReSign,亲测了一下,发现签名是ok的,签名后的包使用codesign --verify example_resign.app验证也是没问题的,但上传到蒲公英后死活下载不来,建议可以放弃这个方案了!(如果你使用iReSign成功实现了重签名,请告诉我)!


附上几个关于重签名的实用命令

查看本地所有能对代码进行签名的证书:
security find-identity -v -p codesigning

查看一个可执行文件签名状态信息:
codesign -vv -d example.app

检查签名app签名是否完好:
codesign --verify eample.app

查看签名信息中包含了什么授权信息:
codesign -d -- entitlements - example.app

查看mobileprovision文件信息命令:
security cms -D -i exaple.mobileprovision

参考:
证书重签
代码签名探析

你可能感兴趣的:(iOS打包后对ipa包重签名)