您的位置:首页 > 移动开发 > IOS开发

ios证书

2016-02-01 14:23 169 查看
前言:

  证书过期或者描述文件(配置文件/PP文件/mobileProvision文件/Provision Profile文件)过期都会引起很大的问题。

  如果是用的企业证书打包在企业内部服务器上通过itms-services协议发布并下载使用的app,其描述文件或证书过期会出现:(a)通过xcrun命令来打包不会成功;(b)如果之前已经打包成功的,安装app时会提示 “无法下载应用,此时无法安装“XXX””;(c)如果应用在之前已经下载好,此时也无法打开。截止目前,遇到过两次这样的事故,正好一次是证书过期导致,一次是PP文件过期导致。所以大家一定要注意证书和PP文件的有效期,及时更新。

  如果是开发版证书打的包,通过appStore发布的app,苹果会直接下架应用,你就无法在appStore上面找到你的应用了,但之前下载的app还是可以用的。

  本篇文章讲解用ios证书制作过程,以及每个步骤的解释。

正文:

Xcode签名至少需要2样东西:证书和配置文件。证书有效一年,通常只要不过期不需要更新,只跟开发账户有关。配置文件则跟app的权限、绑定的设备等很多内容相关。虽然有效期同为一年,但是由于经常需要添加测试设备或者增减app的权限设置(如apple pay,app group, push等),经常需要更换。而工程文件里,证书是通过名字在索引的,而配置文件则是通过UUID来索引。

证书的分类信息:(括号内为证书有效期)

Development

App Development (1年):用来开发和真机调试应用程序。

Push Development (1年):用来调试Apple Push Notification

Production

In-House and Ad Hoc (3年):用来发布In-House和AdHoc的应用程序。

App Store :用来发布提交App Store的应用程序。

MDM CSR

Push Production (1年):用来在发布版本中使用Apple Push Notification。

Pass Type ID Certificate:用于通行证类证书

Website Push ID Certificate

打包或运行真机app,需三步认证:

(1)需要证书对应的私钥来进行签名,用于标识这个App是否合法、安全、完整;

(2)需AppId,并验证Bundle ID是否与其一致;

(3)若真机测试,需确认这台iphone设备是否授权。

用ios证书打包app步骤

(1)在mac的钥匙串中,生成.certSigningRequest文件(即CSR文件);

   解释:

    keychain生成一个包含开发者身份信息的CSR(Certificate Siging Request)文件,同时,KeyChain Access|Keys中新增一对Public|Private Key Pair。

    private key始终保存在Mac OS的Keychain Access中,用于签名对外发布的APP;

    public key随证书(随provisioning profile,随APP)散布出去,对APP签名进行校验认证。

(2)在apple的开发者网站上,使用.certSigningRequest文件,生成.cer文件;

   解释:

    Apple证书颁发机构WWDRCA(Apple Worldwide Developer Relations Certificate Authority)将使用private key对CSR中的public key和一些身份信息进行加密生成数字证书(ios_development.cer),并记录在案(Apple Member Center)。 

(3)下载.cer文件到MAC,双击安装证书。然后在keychain access中看到证书,此keychain里的证书,可右键导出成p12;

   解释:

    除了下载.cer文件到MAC上双击安装证书,还可以在Xcode中添加开发者账号自动同步证书和[生成]配置文件。

    证书安装成功后,keychain Access|keys ——》 公钥

            keychain Access|certificates ——》 私钥(即ios_development.cer文件)

    certificate在Xcode中的位置:Xcode Target | Build Setting |Code Signing | Code Signing Identity 下有 Identities from profile

(4)使用appid和.cer文件生成.mobileProvision文件;

   解释:

    Xcode将配置文件provisioning profile 放在目录 ~/Library/MobileDevice/Provisioning Profiles下。

(5)用p12和.mobileprovision打包;

上面提到的文件的关系可以用下图表示:



(https://github.com/SheronLv/Images/tree/master/mobileProfile)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: