替换企业签名ipa签名

评论41,539

iOS企业签名ipa包里面包含的是Payload文件夹,

替换企业签名ipa签名-图片1

Payload文件夹中包含了资源文件和_CodeSignature签名文件夹

以及embedded.mobileprovision证书配置文件,

而其中关于iOS授权签名的就是_CodeSignature签名文件夹和embedded.mobileprovision证书配置文件

只要替换这两个文件就搞定。

 

而_CodeSignature签名文件夹,需要用 *.plist 授权文件去自动生成。

*.plist文件配置如下:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict>    <key>application-identifier</key>    <string>${application-identifier}</string>    <key>com.apple.developer.team-identifier</key>    <string>${com.apple.developer.team-identifier}</string>    <key>get-task-allow</key>    <false/>    <key>keychain-access-groups</key>    <array>        <string>${application-identifier}</string>    </array></dict></plist>

替换企业签名ipa签名-图片2

其中 {application-identifier} 和{com.apple.developer.team-identifier}在 你自己的企业证书文件中 *.mobileprovision 中拷贝

替换企业签名ipa签名-图片3

实施步骤

 

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

    替换企业签名ipa签名-图片4

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

  • 修改Payload/WeChat.app中Info.plist中bundle Identifier的值为你自己的bundleIdentifier实际值
  • 最后打包压缩成ipa就行了

 

发表评论