iOS证书及ipa包重签名探究

qq群:225451602

http://blog.csdn.net/mtc1256/article/details/45420453iOS证书学习推荐博客代码签名探析,本文重点在于介绍ios8.1.3系统ipa包重签名(如企业证书)无法安装的问题。苹果在iOS8.1.3系统以后加强了对ipa安装包签名的验证,主要区别在于ipa唯一标识在原有Bundle Identifier的基础上增加了证书ID,也就说安装包和手机上已安装APP的Bundle Identifier即使一致,如果两者签名的证书ID不相同,那么安装包也无法正常安装。证书ID是什么?

图中方框里字符串就是证书ID,升级后的ipa标识就是证书ID+BundleID,只有两者完全匹配,安装包才能覆盖安装,否则就会提示安装失败。解决办法就是卸载安装包,重新安装!

1

Theentitlementsspecifiedinyourapplication’sCodeSigningEntitlementsfiledonotmatchthosespecifiedinyourprovisioningprofile

目前,重签名主要用于企业证书重签名个人证书发布的ipa包,包括各种助手及企业内测包的发布等。在重签名前,让我们先看看一个完整的ipa包有哪些与证书相关的东西!打开ipa包,会发现_CodeSignature和embedded.mobileprovision两个文件

_CodeSignature,ipa包签名文件

embedded.mobileprovision,证书配置文件

因此,替换上面两个文件就解决了ipa重签名的主要问题。此外,代码签名探析文中还提到entitlements.plist授权文件,重签名时也需要处理。按照下图内容创建plist文件,输入相关信息。(如果是用通配符的。设置成你budnle id ,要不会报错的)

整个签名过程如下(文件路径自定义)

1、解压ipa安装包

1

cpolinone.ipaolinone.zip

2、替换证书配置文件(文件名必须为embedded,不得自定义)

1

cpembedded.mobileprovisionPayload/olinone.app

3、重签名(certifierName为重签名证书文件名,可以加证书ID后缀)

1

2certifierName="iPhone

Distribution: olinone Information Technology Limited(6a5TVN58SY)"

codesign-f-s$certifierName--entitlementsentitlements.plistPayload/olinone.app

4、打包

1

zip-rolinone.ipaPayload

很多朋友在重签名时会忽略第二步或者没有指定entitlements.plist,都会造成ipa包安装失败。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS证书学习推荐博客代码签名探析,本文重点在于介绍ios8.1.3系统ipa包重签名(如企业证书)无法安装的问题...
    Matrix_x阅读 5,440评论 3 6
  • ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 ap...
    红发_KVO阅读 72,950评论 24 64
  • 前言 以前想获取应用的 .ipa 文件可以从 iTunes 下载,macOS 上的 iTunes 升级成 12....
    iOSugarCom阅读 5,101评论 0 2
  • 最近应用要用企业重签名,(好贵,有个企业证书真赚啊)用企业重签名后内购应该就失效了.(欢迎大神答疑) 发现一篇好文...
    超_iOS阅读 8,047评论 4 15
  • 步履匆匆,跌跌撞撞 曾经懵懂无知的少年 如花儿般静静开放 记忆里—— 是你我操场上奔跑的身影 是教室里认真学习的模...
    等飞阅读 359评论 2 4