iOS证书表明和公布

电脑杂谈  发布时间:2019-09-10 15:02:34  来源:网络整理

adhoc补丁42_adhoc补丁_adhoc证书

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

adhoc补丁_adhoc补丁42_adhoc证书

(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,我们以研发检测证书为例,选择第一个红框中的内容;技术分享

adhoc证书_adhoc补丁42_adhoc补丁

然后下一步,会提醒创建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文件与其对应;

技术分享

adhoc补丁42_adhoc补丁_adhoc证书

添加到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

adhoc补丁_adhoc证书_adhoc补丁42

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证书说明和发布


本文来自电脑杂谈,转载请注明本文网址:
http://xinshanjie.com/a/ruanjian/article-122403-1.html

    相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...