IOS ipa包企业证书签名手动替换

原理

IOS安装包企业签名ipa包里面包含的是payload文件夹,文件夹中包含了资源文件和_CodeSignature签名文件夹以及embedded.mobileprovision证书配置文件,而其中关于ios授权签名的就是_CodeSignature签名文件夹和embedded.mobileprovision证书配置文件 只要替换这两个文件就搞定。
_CodeSignature签名文件夹 需要用 *.plist 授权文件去自动生成。

*.plist文件配置如下:





    application-identifier
    ${application-identifier}
    com.apple.developer.team-identifier
    ${com.apple.developer.team-identifier}
    get-task-allow
    
    keychain-access-groups
    
        ${application-identifier}
    


其中 {com.apple.developer.team-identifier} 在 企业证书文件中 *.mobileprovision 中拷贝

实施步骤

  • 你的有原始的ios安装包,*.ipa
  • 你得有在有效期内的的企业证书,如下文件:
  1. *.mobileprovision
  2. distribution.cer
  3. distribution.p12
  • 将cer证书输入密码安装在当前的mac机器上
  • 命名*.mobileprovision 为embedded.mobileprovision
  • 解压ipa包
unzip *.ipa
  • 删除_CodeSignature签名文件夹
rm -rf Payload/*.app/_CodeSignature
  • 替换*app中的embedded.mobileprovision
cp embedded.mobileprovision Payload/*.app/ 
  • 创建*.plist文件并用该文件签名
/usr/bin/codesign -f -s "iPhone Distribution: ${cerName}" --entitlements *.plist Payload/*.app

其中 ${cerName}是证书名称,可以在钥匙串证书中看到

  • 修改Payload/*.app中Info(info).plist中bundleIdentifier的值为你自己的bundleIdentifier实际值
  • 打包ipa
zip -r xxx.ipa Payload

你可能感兴趣的:(IOS ipa包企业证书签名手动替换)