
1.首先通过钥匙串访问——证书助理——从证书授予机构请求证书——填写证书信息(邮箱,常用名称,存储到磁盘)——存储为(自定义名称.certSigningReuqest,简称CSR文件,只是为了提交到苹果开发者账号中,然后就没用了)到本地
2.苹果开发者账号中,创建证书(Development和Production)——上传CSR文件——下载证书运行 ( xxx.cer文件)
注意:只有在当前电脑中生成本地生成证书,上传到苹果开发账号,然后下载cer文件运行后,钥匙串中才有证书或者对应的秘钥





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

所以即使有新朋友加入到开发组的之后,应该从本地钥匙串中选取证书,导出p12文件(包含证书和秘钥)给朋友。另外可以给同学一份Provisioning Profiles文件(配置文件),用于本地开发识别检测设施
导出p12文件:钥匙串——选择证书——右键导入——存储为——设置p12文件密码
(发给同事后,双击p12文件,输入密钥,本地安装证书成功)
需要指出一点,证书和项目关系似乎并不大,证书一般有效期只有一年,当证书过期后,只应该再次生成一份证书,上传到开发者账号就行,同时由于原有证书过期,需要重新生成Provisioning Profiles文件。然后给同事们最新的p12文件和Provisioning Profiles文件就行
所以开发者账号中的证书,配置文件是可以放心操作的(比如误删了,或者找不到证书秘钥了)
Xcode中添加苹果开发者账号
Xcode工具栏——Xcode——Preferences——Accounts—— 左下角 Add Apple ID——输入苹果账号,密码
在项目的target——general——team中可以选取项目对应的开发者账号

(当bulid的新设备未在开发者账号的devices添加devicetoken的之后,xcode会进行提醒无法识别设备,可以在xcode中fix issue,xcode会手动在开发者账号中,创建一个新的对于这个设施的Provisioning Profiles配置文件,然后安装到本地,唯一的不好就是开发者账号的配置文件下会有太多零散的配置文件)
关于App的发布
修改项目的version,以及项目的版本debug为release

(debug改为release后必须进行检测,一些第三方类库可能release版会有一些不兼容)
Product——Scheme——Edit Scheme 修改 Run/Test/Analyze/Archive 的build configuration (发布的之后,只应该Archive就可以了)

苹果开发者中心——iTunes Connect——我的APP——创建/选择应用——填写基本设置/添加新版本(构建版本)
发布验证
Product——Desination——选择iOS Device
Product——Archive——右侧点击Validate——选择证书——validate——等待——Validate Successful——右侧点击Submit to App Store(提交构建版本)——Submission Successful



苹果开发者中心——iTunes Connect——我的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文件adhoc证书,该文件将appID,开发者证书,硬件Device绑定到一块儿,在开发者中心配置好后可以添加到Xcode上,也可以直接在Xcode上连接开发者中心生成,真机调试时必须在PP文件中添加真机的udid;是真机调试和上架必备之珍品;
平常我们的制作步骤大概都是按以下序列进行,先运用开发者帐号登录开发者中心,创建开发者证书,appID,在appID中开通推送服务,在开通推送服务的选项上面建立推送证书(服务器端的推送证书见下文),之后在PP文件中绑定所有的证书id,添加调试真机等;
具体操作步骤如下:
1、开发者证书的制作,首先登录到开发者中心,找到证书配置的版块,猛戳进入,点进证书,会显示如下界面,点击右上角的加号
会出现以下图标,该操作重复两次,分别建立研发检测证书和公布证书,开发检测证书用于真机调试,发布证书用于提交到appStore,我们以研发检测证书为例,选择第一个红框中的内容;

然后下一步,会提醒创建CSR文件,也就是证书签名请求文件,会有很具体的操作表明,如果英文不太好,可以参考图示;
之后将该CSR文件保存到一处;
备注:CSR文件务必每个证书都制作一次,将常见名称区别开来,因为该常用名称是证书中的密钥的名字;
之后在开发者中心将该CSR文件提交;
提交上去后才会生成一个cer证书,如图所示,有效期为一年;
利用同样的方式配置一下Distribution发布证书,下载保存,双击安装;在钥题串登陆证书中可以查看,其中专用密钥的名字即为CSR请求文件中的常用名称;
2、以上开发者证书的配置完成了,下面我们来配置appID和推送证书;在上面栏中选取appID,勾选左边的push可选项,为该appID所对应的应用添加推送功能,下面会发现创建证书的图标,分别为研发证书和公布证书,下面的步骤就和上述1中建立证书一样了,都是先制定证书请求文件,然后递交生成就行了,需要注意的是,虽然在上面栏证书栏中也可以直接创建推送证书,但是还是建议在appID中,勾选了push服务后在这里建立,这样会导致由于忘了开通push服务而造成推送不可用的状况出现;
证书创建完成后,下载保存,双击安装即可;
3、最后我们来进行PP文件的制作
该流程进行两次,分别建立研发检测用PP文件和发布PP文件,前者用于真机测试,后者用于提交发布;Ad Hoc格式通常用于企业帐号,此处我们忽略;
选择后提交
会手动测试匹配appID,另外下拉项中还可以选取wildCard格式,该格式为手动生成,使用*通配符,适用于批量的,没有推送,PassCard等服务的应用;我们选取我们今天建立的appID,之后下一步选择证书;
继续,这里有一个区别,因为PP文件的研发测试版需要真机调试,所以我们应该绑定真机,这里由于之前我添加过一些设备,所以此处就可以直接全选添加,如果没有的话,需要将真机的udid复制出来在此添加,在公布PP文件中,是没有这一步的;
之后就是输入一个PP文件的名字了adhoc证书,然后生成,下载保存,双击添加到Xcode库中,这样在真机调试以及公布时,就可以分别有不同的PP文件与其对应;

添加到Xcode中的效果如下:
到现在为止,客户端开发和上架所必须的证书文件配置都早已配齐了,天色已晚,明天再配置服务端所用到的推送证书吧,到时候另起一章,将ios诡异的推送流程也捋一捋,本来想提到一篇里的,没想到整了这样长,下班回来开黑去喽!
本文永久地址:
如果你拥有一个开发者账户的话,在iOS Dev Center打开Certificates, Indentifiers & Profiles,你就可以看见如下的列表:

Profile Portal改版有一段时间了,改版过后的结构比以往更清晰明了,易于理解和管理。
上面的列表就包括了研发、调试和公布iOS应用程序所需的所有内容:Certificates、Identifiers、Devices、Provisioning Profiles。下面将一一解释这几个东东。
Certificate
证书是拿来给应用程序签名的,只有经过签名的应用程序才能确保他的来源是可信任的,并且代码是完整的, 未经更改的。在Xcode Build Setting的Code Signing Identity中,你可以修改用于为代码签名的证书。
众所周知,我们申请一个Certificate之前,需要先申请一个Certificate Signing Request (CSR) 文件,而这个过程中实际上是生成了一对公钥和密钥,保存在你Mac的Keychain中。代码签名正是使用这些基于非对称秘钥的加密方法,用密钥进行签名,用私钥进行验证。如下图右图,在你Mac的keychain的login中传输着相关的鉴权和密钥,而证书中包括了密钥。你没法用公钥来进行签名,所以即使没有了私钥,就意味着你不能进行签名了,所以就能够使用这个证书了,此时你没法revoke之前的证书再申请一个。因此在申请完证书时,最好导出并储存好你的私钥。当你想与其他人或其它设备共享证书时,把私钥传给它就可以了。私钥保存在你的Mac中,而苹果生成的Certificate中包括了公钥。当你用自己的私钥对代码签名后,苹果就可以用证书中的公钥来进行验证,确保是你对代码进行了签名,而不是别人冒充你,同时也保证代码的完整性等。

证书主要分为两类:Development和Production,Development证书用来研发和安装应用程序,Production主要用来分发应用程序(根据证书类型有不同作用),下面是证书的分类信息:(括号内为证书有效期)
(注:不同类型的开发者账户所能创建的证书类型不同,关于开发者账户的对比和InHouse证书相关的内容,请见我的另一篇文章)
Production
有一些种类的证书我没有使用过,所以也不知道准确的作用。
App ID
App ID用于标志一个或者一组App,App ID应该是和Xcode中的Bundle ID是一致的甚至匹配的。App ID主要有以上两种:
每创建一个App ID,我们都可以设定该App ID所使用的APP Services,也就是其所使用的额外服务。每种额外服务都有着不同的规定,例如,如果要使用Apple Push Notification Services,则需要是一个explicit App ID,以便能唯一标志一个应用程序。下面是现在所有可选的服务和相应的配置要求。

如果你的App使用上述的任何一种service,就要根据规定去配置。
Device

Device最简单了,就是iOS设备。Devices中包括了该款项中所有可用于研发和检测的设施。 每台仪器使用UDID来唯一标志。
每个账户中的设施总量限制是100个。Disable 一台设备也不会增加名额,只能在membership year 开始的之后才会通过删除设备来提高名额。
关于设备总量的难题,详见这篇文章。
Provisioning Profile
一个Provisioning Profile文件包括了上述的所有内容:证书、App ID、设备。
试想一下,如果我们要打包以及在真机上运行一个应用程序,我们首先应该证书来进行签名,用来标志这个应用程序是合法的、安全的、完整的之类;然后还要指明它的App ID,并且验证Bundle ID是否与其一致;再次,如果是真机调试,需要确定这台设施是否用来运行程序。而Provisioning Profile就把这种信息全部打包在一起,方便我们在安装和发布程序打包时使用,这样我们即使在不同的状况下选取不同的profile文件就可以了。而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里。
例如,如下图右图,一个用于Development的Provisioning Profile中包括了该Provisioning Profile对应的App ID,可使用的证书和设备。这意味着使用这个Provisioning Profile打包程序需要拥有相应的证书,并且是将App ID对应的程序运行到Devices中包括的设备上去。

如上所述,在一台设备上运行应用程序的过程如下:

与证书一样,Provisioning Profile也分为Development和Distribution两种:
(注:前面讲到不同账户类别所能创建的证书类型不同,显然Profile文件的类型是和你所能创建的证书类型相关的)
In House 与Ad Hoc的不同之处在于:In House没有设备总量限制,而Ad Hoc是拿来测试用的,Ad Hoc的包没法运行在该款项内已登记的只用设备上,显然是有最多100个设备的总量限制。所以这两种ProvisioningProfile文件的差别就在于其中的设备限制不一样而已,而她们所使用的Certificate是同样的。
了解了前面的概念,再来看开发及公布流程就比较简洁了,而且相信你不用看教程也能一步步完成所有的操作了。
开发/真机调试流程
根据下面的介绍,可以了解进行Development主要有下列几个步骤:
事实上第三步通常是不需要的,因为我们一般都是用Xcode生成和管理的iOS Team Provisioning Profile来进行开发,因为它比较便捷,所以不需要自己自动生成Provisioning Profile。
iOS Team Provisioning Profile是第一次使用Xcode添加设备时,Xcode自动生成的,它包括了Xcode生成的一个Wildcard App ID(*,匹配所有应用程序),账户上面所有的Devices和所有Development Certificates,如下图右图。因此,team中的所有成员都可以使用这个iOS Team Provisioning Profile在team中的所有设备上安装所有的应用程序。并且当有新设备添加进来时,Xcode会升级这个文件。

发布流程
网上有很多关于公布App Store的流程,我就不缀述了,不过按照下面的概念介绍,不管是App Store、In-House还是Ad-Hoc,打包流程都是差不多的,都包含了下面几个关键技巧:
以上就是对证书、Provisioning Profile、App ID等的介绍。
本文永久地址:
iOS证书说明和发布
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-122403-1.html
狠狠的干小日本