“尊贵”的年费会员
和其他老爷家的年费会员一样,交了苹果开发者计划的年费,也会相应的拥有年费会员“尊享”的各种权限和服务,当你的账号激活后,再进入你的开发者账号,就会变成下面的样子。
左边栏上半部分是会员独享的,普通账号是看不到这些选项卡的,对比可见上一篇,下半部分是通用的,这里就不说了。Overview是一个概览,展示你账号状态和一些当前账号身份常用的模块推荐,Membership就是当前账号的详细信息一览,第三第四个是主要要讲的模块,也出现在了概览里,后面详述。
CloudKit Dashboard是CloundKit相关的设置管理中心,啥是CloundKit?这是iOS8以后苹果推出的基于iCloud的一个云端数据存储服务,提供了低成本的云存储并能作为一个后端服务通过用户们的iCloud账号分享其应用数据。换句话说,如果只是做iOS独占应用,又不想或者不会自己弄后台保存用户数据,那CloudKit就是非常适合你的一个后端解决方案。当然目前我还没用过这个,所以不能瞎说哈,以后有深入研究可能再来分享一下,现在先贴几篇相关的文章,感兴趣的可以看看。
- iOS 8 CloudKit上手教程
- iOS云存储:CloudKit 基本使用教程(不懂后台开发的小伙伴有福了)
- 你应当留意的CloudKit
- CloudKit - 免费强大的云服务
最后一个是苹果的技术支持,作为一名交了年费的“上帝”,当然会享受一些“特殊”服务,看它介绍大意应该是如果你的App有什么“头疼脑热”,让你感觉没得救了,你可以来找苹果粑粑,苹果工程师可以从代码层面对你的App提供技术支持,不过只有两次技术支持事件的机会?如果我没理解错的话。不过应该很少有人用到这个吧,以后万一用到了再来补充吧。
同志,请出示一下你的证件
和身份证,通行证一样,你如果想自由畅快的真机测试或者发布应用,也是需要相应的证书和许可的,接下来我们详细来讲讲。
点击左边栏第三个的Certificates, ID & Profiles,会跳转到下面这个管理相关配置文件的页面。
这些东西都是做什么用的呢?我们一个个来看看。
Certificates(证书)
Certificates 就是“证书”咯,它可以看做是你的户口,是证明你开发者身份的证件,也是你开发和发布的门钥匙,是最基本的根证书,所以第一步自然是要乖乖领证。点击Certificate下的All可以看到当前已经申请成功的所有证书列表信息,点击右上角+号则可以申请新证书。
点击后从下图可以看出,证书是分为两个大类的,一类是Develoment,也就是开发相关的证书,另一类则是Production,即产品相关的证书。需要注意的是单个付费账号申请其中的开发和发布证书的数量是有限的,普通个人开发账号最多可注册 iOS Development/Distribution 证书各2个,其实一般各只需要一个就够了。
开发证书 ( Development Certificates )
顾名思义这是开发阶段需要使用到的证书。有人会问了,我建新工程敲代码也没见问我要证呀?敲代码当然不要,但你如果想要把你创建的App自由的在你的设备上安装,这个证书就是必不可少的,有了它,才能授权你的设备安装运行对应许可的App。
开发类证书包含两种,开发证书和推送证书。前者主要用于真机测试和相关开发的许可,是我们必须用到的,而后者是苹果推送服务的证书,如果你的App有推送功能,应该也申请一份这个证书,感兴趣的可以看看这篇博文(苹果信息推送服务(Apple Push Notification Service)使用总结)。这里我们选择第一个iOS App Development,然后滚动到最底端点击蓝色按钮continue进行下一步。
进入下一步后,我们会看到提示要求我们提供一个 Certificate Signing Request (CSR)文件,这个证书签名请求文件从哪来呢?
首先我们得访问我们mac电脑上的钥匙串,一般可以点击桌面,从顶部工具栏选择前往-实用工具中找到钥匙串(请无视我的“屁股”桌面,麦爹:午时已到~),也可以在Launchpad中的其他文件夹里找到它。
单击图标打开,会弹出钥匙串访问的窗口,这里可以看到你目前电脑中安装的各个证书的状态,如果出现过期和失效的,应及时更新替换或删除。
这里面的详细道道我们暂且不管,在保证钥匙串访问窗口在当前时,我们来看到顶部工具栏,选择钥匙串访问-证书助理-从证书颁发机构请求证书这一项。
这时会弹出一个窗口如下图,用户电子邮件地址就填你的开发者账户的邮箱,常用名称填你的名字或者你们团队的代号都行,如果你要把文件发送到电子邮箱,就选第一个并填上接收文件的邮件地址,我们在这里选第二个存储到磁盘。
填完必要信息后点继续,你的桌面上就会生成这么一个文件,就是我们申请证书所需要的CSR文件。这个文件保管好,以后各个证书的申请都会需要用到,最后找个云盘存好。
让我们回到网页端,在刚才的页面点击蓝色按钮continue后,在如下图的页面,点击Choose File...,找到你刚刚生成的CSR文件并上传后,点击蓝色按钮Continue进入下一步。
看到如下图的页面,你的开发证书就申请成功了,此时点击Download下载后双击即可安装证书,然后到刚刚的钥匙串访问中可以看到你的新证书状态。至此即完成了最基本的开发证书的申请流程,是不是挺简单的?不过这才是万里长征第一步,我们继续往下看。
稍等一下,那我要是申请错了或者不想要了,想删除这个证书要怎么做呢?也很简单。回到证书列表,点击展开你需要删除的证书,核对信息无误后点选Revoke即可,这里点击Download也可以重新下载该证书。
另外刚刚说到的CSR文件,究竟是用来做什么的呢?知其然,还得知其所以然,我们在刚才选择CSR文件上传的那个页面可以看到解释。
简单点说,生成CSR文件的这个过程,实际上是自动生成了一对公钥和私钥,并保存在了你的Mac的钥匙串中。Xcode的Code Signing(代码签名)正是使用这种基于非对称密钥的加密方式,用私钥进行签名,用公钥进行验证。我们可以看看苹果官方的文档Creating Your Team Provisioning Profile,如下图所示,在我们自己的Mac的钥匙串登录项中的密钥项里存储着相关的公钥和私钥,而申请的证书中只包含了公钥。
这也就是说你只能用相关的私钥来进行签名,所以如果没有了私钥,证书也就没有意义。当用自己的私钥对代码签名后,苹果就可以用证书中的公钥来进行验证,确保是本人对代码进行了签名,而不是被冒充,从而确保代码的完整性。因此在申请完证书时,最好导出并保存好你的私钥。当你的团队有新成员或其他设备需要共享证书时,用同一私钥就可以。
那么问题又来了,我要怎么和团队的其他成员共享证书,用同一私钥呢?打开你的钥匙串访问,选中你需要共享的证书,右键点击弹出菜单,选择导出某某证书。
这时会有下面这个弹窗弹出,填上相关信息后点存储。
接下来还会弹出设置文件密码(不填就是不设置密码)的弹窗和验证密钥登录密码的弹窗,依次输入后点允许即可在相应位置生成一个.p12文件呢。将这个文件共享给团队成员,双击安装后即可。关于p12文件可以看看这篇博文(一个苹果证书怎么多次使用——导出p12文件)。
不过其他人仅有证书还不足以顺利的进行真机测试和相关开发,还需要另一个文件,这个我们后面再讲。
开发证书到这就讲完了,至于推送证书的申请,还需要先绑定App ID,这里也不做介绍,有需要的可以自行研究。
产品证书 (Production Certificates )
说完了开发类的证书,咱么在看看产品类的证书。乍一看种类还挺多。
第一个App Store and Ad Hoc,就是我们常说的发布证书(Distribution Certificate)。这个证书有两个作用,一是授权我们向AppStore提交并发布应用,是上架我们作品必备的通行证。申请流程和之前开发证书一毛一样,这里就不多说了。发布证书只需要发布人员的Mac上安装就行,不需要共享给团队成员。二则是发布测试应用的,相关可以参考这篇文章(制作iOS Ad-Hoc测试应用),这里也不多费篇幅了。
后面这些看名字大概也能知道是做什么的,我也没用过,不敢在这瞎BB误人子弟,有需要用到的可以自行研究,申请证书的过程也不会很麻烦。
Identifiers(标识符)
天了噜,讲个证书讲了这么长篇幅,我也是够啰嗦的,下面的都快点讲了。我们看看第二个Identifiers,也就是标识符,或者通俗点说就是身份证,护照。你的App要是没有这玩意儿,就是个黑户,想上线AppStore那是万万不可能滴。下面那些我就不讲了,我也没用过,只说App IDs,这就是给你心爱的App儿子办理身份证的派出所所在地。老规矩,点击右上角的加号进行申请。
要填的信息不少,我们来看看。App ID Description下面就是填下你的App的名字,这里该填啥填啥,不影响你上架后App的名字显示,所以最好填明确一点,且不要重复,不然回头ID多了你都搞不清哪个是哪个,但一定不要有特殊符号。在下图App ID Suffix里,是设置里的App ID后缀类型的,第一种是Explicit App ID是指唯一的App ID,这种App ID用于唯一标识一个应用程序,例如com.GordonHaha.BoomShaKaLaKa,标识Bundle ID为com.GordonHaha.BoomShaKaLaKa的程序。
而Wildcard App ID则是通配符App ID,用于标识一组应用程序。例如可以表示所有应用程序,则com.GordonHaha.可以表示以com.GordonHaha开头的所有应用程序。这里看你需求选择,一般单独的App选第一个就好。在下面的Bundle ID栏里填上你App相应Bundle ID即可。记住,Bundle ID必须是没有注册过的,如果有人申请注册过这个ID了,就老老实实换一个吧。这就跟你注册网游ID一样,先到先得,所以说取个特别点的名真难呀。
什么什么?Bundle ID在哪里看?如图位置。。。
填完这个往下看最后一项App Services,这里是选择你的App需要的服务的,包括Apple Pay等等,当然这些服务中有一些是需要相应证书许可的,有需要的就请自行研究吧,这里不多说了。我们这里就默认的就行了。完成后点continue进入下一步,会让你核对下刚刚的信息,无误后点击蓝色按钮Register即可完成App ID的注册,这样你心爱的App儿子就终于有了身份证,再也不是黑户了。
那我要是填错了怎么办?还能改吗?当然可以。在App ID的列表里找到你需要修改的App ID,点击展开,在展开信息栏下方有Edit按钮,点击即可修改。修改页面下也可以直接删除该App ID,流程都比较简单,这里不再详述。
Devices(设备)
这个第三项Devices,很明显就是添加设备的地方啦。我们想要自由畅快的真机测试,就需要把你的测试机在这里注册。测试机类型有很多,我们这只讲iPhone的,其他的请自行研究喽。还是老规矩,先点右上角的加号添加新设备。
我们看到Register Device,注册你的设备。这里需要填你的设备名字和UDID,设备名填一个你觉得好认的就行,比如某某的iPhone6s之类。那什么是UDID呢,百度百科上说,UDID指的是设备的唯一设备识别符,移动广告商和游戏网络运营商往往需要通过UDID用来识别玩家用户,并对用户活动进行跟踪。也就是你手机的身份证啦。那我要在哪看呢?用数据线连接你的iPhone或iPad到你的电脑上,然后打开电脑上的iTunes,点击下图红框中的图标进入设备详情页。
来到了设备详情页,我们设备的基本信息都展示在了这里。可没有看到你说的UDID呀,难道是序列号?
当然不是啦,这里需要点击下序列号来切换信息显示,直到显示出UDID为止,然后复制即可。
回到网页端,填好相关信息后,我们看到下面还有个Register Multiple Devices,这是批量添加设备的地方,要记住每个账户中的设备数量限制是100个。Disable 一台设备也不会增加名额,只能过了一年之后才能删除,所以如果机器比较多慎用。
信息填完后点击continue即完成设备的添加,在相应的设备列表里可以查看添加的设备信息。
Provisioning Profiles(描述文件)
最后一个是描述文件,这是个独特的东西,它将之前讲的证书,App ID和设备打包为一体,这样就方便了我们的调试和发布。将其放入我们的Xcode中,让Xcode知道我们的证书和哪些设备之类的信息相匹配,从而允许文件中绑定的设备安装相应的App进行开发测试。
我们来看看怎么创建这个描述文件,依旧是点选Provisioning Profiles栏下的All,再点右上角的加号。
显然,描述文件也分开发和发布两类,创建的流程其实都是一样的,这里我们选第一个iOS App Development,然后continue进入下一步。然后会需要你选择一个之前注册号的App ID,选好后continue下一步。
接下来是选择你之前创建的证书,可以多选,选择相应App的开发证书即可。然后continue下一步。
然后是选择可以进行真机测试的设备,这里会提供你之前添加过的那些设备,选择需要的即可,继续continue下一步。
最后会让你填上描述文件的名字,下面可以看到文件的类型,包含的证书数量和设备数量。填写完毕后点continue即可完成文件的创建,和之前的证书一样下载下来双击即可完成安装。其他的描述文件创建过程基本一样,就不再赘述了。
这样,只要将你开发同伴的设备添加进去后,再将之前的p12文件和对应的开发描述文件一起发给你的团队成员,即可共享证书和真机测试的许可。
关于真机测试
真机测试是很重要的开发步骤,模拟器毕竟不是真机,处理架构都不一样,很多模拟器上运行似乎没问题,到了真机上就出Bug,也可能模拟器上运行不了,真机上又毫无问题。实际开发中,还是当以真机为准,毕竟我们的App是要装到用户的设备上的,模拟器上跑得再6也没用,真机上运行流畅无误才是最基本的准则。前面也说了真机测试的注册流程,那对于没有付费账号的广大开发者来说,想要将自己的好不容易开发出的宝贝儿App儿子装在自己的手机上该怎么办呢?
为了扩大iOS的影响力,鼓励iOS开发者,去年推出的Xcode7增加了免证书真机测试的功能,对于广大iOS开发者来说是一个不小的福利。具体的流程我这里不多说了,网上有很多教程,这里贴几篇。
- Xcode7 真机调试(无需证书)详解
- iOS开发Xcode7真机调试教程
像我们从github,cocoachina等地方下了一些Demo想真机测试一下时,常会发现因为证书对不上而无法实现,这时候就可以改下工程的Bundle ID,通过上面的免证书真机测试流程重新生成临时证书即可,不过对于一些有绑定Bundle ID的第三方SDK,这样做很可能会导致程序无法运行或者其他异常状况,所以也得看情况使用。
今天啰里啰嗦的把证书相关的基本过了一遍,也算万事俱备,只欠最后的提交了。当然你也许会说还得要开发一个App呀,不然提交啥?
那我只能表示
(图片打码好辛苦,感觉身体被掏空~)