Xcode 开发者证书的一些整理

来源:互联网 发布:java多线程上传图片 编辑:程序博客网 时间:2024/05/29 15:11

刚刚从培训机构学完4个月的ios之后,过完春节就开始找工作。在51job上投了几份简历,下午就收到了第一份面试邀请。

一家创业公司,手表主题的社交app。因为本人很懒,所以就不再继续等其他面试通知了,在这家公司呆了下来,面试当天下午还吃了元宵的汤碗。

相信很多刚刚接触ios开发的人,都对于苹果的开发者中心以及开发者账号都有点陌生。培训机构这部分的内容只讲了一个上午,而且当时也没有给我们真机用来测试,于是到了公司之后才自己开始各种百度找资料,因为工作上需要真机测试以及导出ipa给其他机子安装,所以只能一上岗就恶补了有关的知识,有说的不对的请大神们指出。

首先,要说的是,我这工作所要用到的苹果的开发者证书有个人的开发者证书和企业的开发者证书。个人的开发者账号(100台不同Devices可以添加到一个账号上)貌似是$99一年,企业的也有分99刀和499刀的,这里他们的不同就不细说了。
不管是个人的还是企业的账号,对应的证书类型都是一样的,分别是Development 和 Production。Development主要是用于开发调试的,也就是我们等下要说到的真机调戏。而Production则是对应于发布产品,例如AppStore上架,企业app应用分发等用途。

由于本人太穷,买不起99刀一年的个人账号,所以在苹果开发者中心https://developer.apple.com/membercenter/index.action也只是一个免费的空壳账号,进去了也没显示证书生成的页面,所以就不上图了。网上很多具体的图,大家去找找看就行。这里就辛苦跟我一样的初学者看看纯代码编写(纯文字)描述的怎么申请证书以及有关真机调试的一些事情吧。

首先,想要拥有真机调试或者是打包app的权限,是需要证书的。虽然网上貌似有不用证书也能真机调试的教材,不过太复杂了,我也没去留意,再说作为iOS的开发者,使用证书应该是必备的技能吧。废话不多说,下面记录下自己对于证书的一些理解。

1.需要真机调试必备的东西:

1> 一个Development证书
2> 一个对应的Provisioning Profiles 也就是配置文件。

怎么得到这2样东西呢?
首先我们要再自己的电脑上面生成CSR文件,不知道什么东西的,请百度,用我自己的话来说,就是你要到银行之类的地方要申请信用卡啊,还是开户啊,都要先填好一张表格,而CSR则是我们申请证书时需要自己先填好的表格。
很简单,首先在自己机子上找到–>”钥匙串访问”,打开它,在左上角“钥匙串访问”中,找到“证书助理“–>”从证书颁发机构请求证书“点进去。

点了之后是这样子

用户电子邮件地址:这里我是填开发者账号的邮箱地址,其他的地址没试过
常用名称:这里填的名字会跟账号你用这个CSR文件生成的证书的秘钥的名字关联的,所以想好这个CSR文件要用来生成什么app的证书,不要随便写些自己都不知道意思的名字上去了,不然后面证书多了,对应的秘钥页多了,自己就会搞乱了。
请求是:选择”存储到磁盘“

按继续,将CSR指定保存到某个地方。这里建议大家建个文件夹把CSR保存进去,到时候申请到的证书和配置文件也一起保存到这个文件件,方便自己管理。当然不同用途的证书和配置文件要分开文件件管理了,不然很容易搞混了。

搞好之后,就可以到开发者中心的网站,开始我的证书申请之旅了。
进入到开发者中心,可以先逛一下啊,反正又不会点坏它。先熟悉下界面,毕竟以后就要跟它打交道了。熟悉了之后,请找到”Certificates, Identifiers & Profiles“这一栏,点进去吧,骚年们。
进去之后,你会看见如下一张图:(原谅我盗图,为了方便大家,界面都是一样的。。。)
这里写图片描述

上面就是我们这次要操作的主战场,关于证书以及其管理都将在这个页面进行。

我们先看看左边的导航栏里面的内容:
Certificates:这个就是我们申请证书的地方,看见这栏里面倒数第一和第二项没,没错,就是之前提到的Development 和Production,我们要申请的真机调试证书是Development。

Identifiers:这个是管理我们账号里面的app Identifier的。什么是Identifiers?就是我们Xcode中的工程中对应的Boundle Identifier–>com.company.xxx 。 Boundle Identifier是每个app唯一的标识,每个账号可以添加的app BI数量有没有上限我不知道,但是只有添加到这里的App IDs 才可以使用对应的证书和配置文件进行真机调试。如果你只有证书和配置文件,但是在Xcode中把BI改掉了,那么恭喜你,这样是进行不下去的。当然证书中有一种是可以调试com.company.xxx 这样拥有com.company开头的BI的应用的,xxx是可以改变的,后面会讲到,不然每一个app都要申请一个证书太麻烦了。

Devices:这里是管理开发者证号对应的设备的。个人开发者账号中,只有添加到这里的设备才获得了真机调试的资格。一个没有添加到这里的设备,具备上面说到的证书,配置文件,正确的BI,也是无法真机调试的。另外,一个账号只能添加100个Device哦,如果要删除里面已经添加的Device,貌似是要等第二年续费的时候才可以操作的。

Provisionining Profiles:这里是配置文件生成和管理的地方。对应的Development和Distribution分别对应我们在Certificates中的Development 和 Production。

好了,介绍完导航栏,我们就进入正题说说证书是怎么生成的吧。

在Certificate中选择Developments,之后会在右边的画面里面看见2个选项,分别是iOS App Development 和 Apple Push Notification service SSL。而且iOS App Development就是我们要生成的用于真机测试的开发证书了。Apple Push Notification 则是用于苹果推送服务的证书。大家不要将这2个证书搞混淆了。Production证书里面也有几个选项,分别是App Store and Ad Hoc 和Apple Push Notification service SSL。App Store and Ad Hoc 是对应于发布苹果商店或者是Ad Hoc的,而Apple Push Notification 则是发布时要使用的对应的推送服务的证书。也就是说,对于Development 和 Production ,分别有不同的推送证书的,到时候不要搞错了。不然就收不到推送消息了。

而我们要申请的真机调试证书对应的时iOS App Development。选择,接着让你上传一个CSR文件,就是我们刚刚用电脑的钥匙串访问生成的CSR文件,接着就能得到我们需要的证书了。将它下载下来,保存好。同样Distribution证书也是同样的方法生成。双击我们保存好的证书,就会自动安装到我们的钥匙串访问中,可以在里面方便的找到。

生成完证书之后,我们接下来就是要弄相关的配置文件了。因为在配置文件中,如果是Development证书的配置文件,会要求选择对应的App IDs,所以我们要先搞定我们的App IDs。

在App IDs 中,我们创建对应我们要真机调试的程序的App IDs(名字跟Boundle Identifier相同),接着在这个App ID里面,选择我们需要的苹果的服务,如果需要推送消息,则把Push Notifications 选上,不然生成的配置文件是不会让你的app接受到推送的。(如果之前没有选择这里,可以在选择之后,再生成一次新的配置文件,这样就可以接收到推送了。)

搞定App IDs之后,我们就要把我们要真机调试的设备(iPhone、iPad)的App Identifiers添加到Devices里面。App Identifiers可以在xcode里面的Product –>Archive中查找到(貌似是这个地方哦)。

搞定上面的内容之后,就选择Provisioning Profiles的Development中,选择我们对应的App ID和要真机调试的设备的App Identifiers,接着,就会生成一个配置文件了。下载下来保存好,双击,到时候在Xcode中就可以查看到对应的配置文件了。

同理,Distribution的配置文件也是一样的,但是就会少了选择App Identifiers的选项,因为是要放到AppStore中的,没有设备的限制了。

另外,Production证书是没法真机调试的哦,所以,嘻嘻,对应的证书和配置文件要弄清楚,不然搞错了Xcode真机调试的时候会报错的。如果在某些情况,好像有新的设备需要真机调试,那么再加入App Identifiers之后,还是需要生成一个新的配置文件的,不然新的设备也没法调试。

总之,配置文件就像是记录了你的证书使用时对应的App ID状态 、App Identifiers 和证书名字,三样东西就挂钩了,如果有一个地方改了,就必须生成一个新的配置文件告诉系统有新的东西了,不然配置文件还是记录着旧的东西,新改变的东西没办法工作。

最后要提下push Notification证书。刚刚开始搞推送消息的时候,我都把推送证书和之前说到的证书搞乱了,以为推送证书是加了推送功能的Development证书或者是Production证书。后面研究之后发现不是这样的。Push Notification证书只是用于我们的App有推送功能的时候,给我们的后台服务器用于向苹果的推送消息服务器发送东西要用到的一个证书,基本是给搭建后台的人用的,跟我们前面的真机测试、生成IPA文件是没有用到的地方的。希望大家区分看来。

好啦,这次记录了自己对开发者申请证书的一些理解,以后的文章也会记录下工作中一些问题和体会。需要改进或者理解错误的地方麻烦大家多多体谅。

0 0
原创粉丝点击