首页 > 编程知识 正文

苹果企业证书签名共享,ipa包替换签名ios

时间:2023-05-03 17:19:32 阅读:251953 作者:2173

由于ios的企业证书有期限,到期限后就会导致App不能使用,故需要重新进行签名,先整理一份自己在mac上手动替换签名的方法和步骤。

原理:

IOS安装包企业签名ipa包里面包含的是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>

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



       实施步骤:

你的有原始的ios安装包,*.ipa你得有在有效期内的的企业证书,如下文件: *.mobileprovisiondistribution.cerdistribution.p12 将cer证书输入密码安装在当前的mac机器上命名*.mobileprovision 为embedded.mobileprovision解压ipa包unzip *.ipa 删除_CodeSignature签名文件夹rm -rf Payload/*.app/_CodeSignature
替换*app中的embedded.mobileprovisioncp embedded.mobileprovision Payload/*.app/  创建*.plist文件并用该文件签名/usr/wjdyj/codesign -f -s "iPhone Distribution: ${cerName}" --entitlements *.plist Payload/*.app 其中 ${cerName}是证书名称,可以在钥匙串证书中看到
 修改Payload/*.app中Info(info).plist中bundleIdentifier的值为你自己的bundleIdentifier实际值打包ipazip -r xxx.ipa Payload
      拿到xxx.ipa进行验证去吧。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。