zoukankan      html  css  js  c++  java
  • IOS证书的申请和使用

    苹果的证书繁锁复杂,制作管理相当麻烦,今天决定重置一个游戏项目中的所有证书,做了这么多次还是感觉很纠结,索性直接记录下来,日后你我他查阅都方便;

    关于证书

    苹果使用密文签名技术来验证App的合法性,不管是iOS应用还是Mac应用都需要相应的签名证书来作为测试或发布App用。这里主要谈谈iOS的证书,当然,Mac的证书也基本类似。

    在开发iOS应用的时候,我们需要签名证书(开发证书)来验证,并允许我们在真机上对App进行测试。另外,在发布App到App store的时候,我们也需要证书(发布证书)来做验证。那么什么是签名证书,如何获取签名证书,下面听我慢慢道来。

    首先,证书(Certificate)是用来证明某一件事是否成立的,好比拿到的获奖证书,是证明参加比赛并获奖的凭证。类似,在iOS开发中,用证书来证明你是否具有某些权限或者能力来做某事。代码签名验证允许我们的操作系统来判断是谁对App进行了签名,在安装了Xcode后,Xcode会在项目编译期间使用你的代码签名验证,这个验证由一个由Apple认证过的公钥-私钥对组成,私钥存储在你的钥匙串中(Mac本地,在系统实用工具中),公钥包含在证书(Certificates)中,证书在本地钥匙串和开发者账号中都有存储,这种公钥-私钥验证授权的方式在很多地方都有使用到,比如Git中的SSH协议也是通过这种方式来确认访问权限。另外,还有一个我们可以叫做媒介证书的证书来确保我们的证书(Certificates)是经过授权而发布的。如下图所示:

    1

    当安装好Xcode时,媒介证书(Intermediate Certificate)就已经安装到我们的钥匙串中去了。通过在开发者账号(Developer Account)和本地(Mac)都经过验证的证书(Certificate)我们就可以利用合法的证书进行App的测试和发布了。

    首先得描述一下各个证书的定位,作用,这样在制作的时候心中有谱,对整个流程的把握也会准确一些;

    1、开发者证书(分为开发和发布两种,类型为ios Development,ios Distribution),这个是最基础的,不论是真机调试,还是上传到appstore都是需要的,是一个基证书,用来证明自己开发者身份的;

    2、appID,这是每一个应用的独立标识,在设置项中可以配置该应用的权限,比如是否用到了PassBook,GameCenter,以及更常见的push服务,如果选中了push服务,那么就可以创建生成下面第3条所提到的推送证书,所以,在所有和推送相关的配置中,首先要做的就是先开通支持推送服务的appID;

    3、推送证书(分为开发和发布两种,类型分别为APNs Development ios,APNs Distribution ios),该证书在appID配置中创建生成,和开发者证书一样,安装到开发电脑上;

    4、Provisioning Profiles,这个东西是很有苹果特色的一个东西,我一般称之为PP文件,该文件将appID,开发者证书,硬件Device绑定到一块儿,在开发者中心配置好后可以添加到Xcode上,也可以直接在Xcode上连接开发者中心生成,真机调试时需要在PP文件中添加真机的udid;是真机调试和必架必备之珍品;

    平常我们的制作流程一般都是按以上序列进行,先利用开发者帐号登陆开发者中心,创建开发者证书,appID,在appID中开通推送服务,在开通推送服务的选项下面创建推送证书(服务器端的推送证书见下文),之后在PP文件中绑定所有的证书id,添加调试真机等;

    具体操作流程如下:

    1、开发者证书的制作,首先登陆到开发者中心,找到证书配置的版块,猛戳进入,点进证书,会显示如下界面,点击右上角的加号:

    会出现以下界面,该操作重复两次,分别创建开发测试证书和发布证书,开发测试证书用于真机调试,发布证书用于提交到appStore,我们以开发测试证书为例,选择第一个红框中的内容:

    然后下一步,会提示创建CSR文件,也就是证书签名请求文件,会有很详细的操作说明,如果英文不太好,可以参考下图;

    根据它的说明创建打开KeychainAccess 创建 Certificate Signing Request。

    填写“User Email Address”和“Common Name” 后选择 Saved to disk 进行保存 。

    之后将该CSR文件保存到一处;

    继续返回Apple developer 网站点击 Continue ,上传刚刚生成的 .certSigningRequest (CSR)文件生成 APNs Push  Certificate(CER):

    提交上去后就会生成一个cer证书,如图所示,有效期为一年;

    下载并双击打开证书,证书打开时会启动“钥匙串访问”工具。

    在“钥匙串访问”中你的证书会显示在“我的证书”中,注意选择“My Certificates” 和"login"

    备注:CSR文件尽量每个证书都制作一次,将常用名称区分开来,因为该常用名称是证书中的密钥的名字;

    之后在开发者中心将该CSR文件提交;

    如果开发者B,登录开发者账号,下载证书(cer文件)运行,只有证书没有秘钥,是不能正常使用的

    blob.png

    所以如果有新同事加入到开发组的时候,应该从本地钥匙串中选择证书,导出p12文件(包含证书和秘钥)给同事。

    另外可以给同事一份Provisioning Profiles文件(配置文件),用于本地开发识别测试设备

    导出p12文件:钥匙串——选择证书——右键导出——存储为——设置p12文件密码

    (发给同事后,双击p12文件,输入密码,本地安装证书成功)

    需要强调一点,证书和项目关系其实并不大,证书一般有效期只有一年,当证书过期后,只需要重新生成一份证书,上传到开发者账号就行,同时因为原有证书过期,需要重新生成Provisioning Profiles文件。然后给同事们最新的p12文件和Provisioning Profiles文件就行

    所以开发者账号中的证书,配置文件是可以放心操作的(比如误删了,或者找不到证书秘钥了)

  • 相关阅读:
    ElasticSearch 安装 go-mysql-elasticsearch 同步mysql的数据
    ElasticSearch 安装 elasticsearch-analysis-ik分词器
    Centos6.5 (或Linux) 安装Elasticsearch
    Centos6.5安装mysql 5.7
    3、使用Oracle Logminer同步Demo
    2、Oracle Logminer性能测试
    1、图解Oracle Logminer配置使用
    springmvc+mybatis+redis的session共享+maven管理
    CentOS安装nginx以及负载均衡的搭建
    java使用jedis访问CentOS中的redis
  • 原文地址:https://www.cnblogs.com/cy568searchx/p/4895406.html
Copyright © 2011-2022 走看看