1、 苹果开发者账号有四种类型,分别是:

  • 个人开发者账号:99$一年,可以在AppStore上架,并且在app后面显示个人ID;每年最多只能添加一百个苹果设备对app进行真机调试;只要付费就可以申请;一般是个人使用或者小公司偶尔使用(AppStore显示的是个人名字,不是公司名)。

  • 企业开发者账号:299$一年,不可以在AppStore上架(所以也就不需要苹果的审核就能直接批量安装在苹果设备上),一般只在自己企业内部使用,对设备数量没有任何限制;申请的时候还需要公司的邓白氏编码DUNS(这个可以在苹果开发者中心免费申请)

  • 公司开发者账号:99$一年,可以在App Store上架,可以自定义的团队名称。最重要的是公司账号可以允许多个开发者协作开发,比个人多一些帐号管理的设置,分4种管理级别权限。申请的时候同样需要公司的邓白氏编码。(一般公司的话会选择这个)

  • 教育账号: 什么东东,没有碰到过


苹果开发者账号.png

2、 下面从上到下说说苹果开发者账号个人中心的内容,Certificates、Identifiers、Devices、Provisioning Profiles

  • Certificates:有开发证书和发布证书。开发证书都是一样的,我们只说说发布证书:

    • AdHoc:这个证书一般用在上线苹果商店前最后一次的调试,它所用是的证书和配置文件和正式上线商店时用的证书和配置文件是一样的,他们的不同点在于,这个证书中指定了哪些苹果设备(最多100)才能安装此app,所以一般公司就用打个AdHoc包,对设备上线前做最后一步测试

    • AppStore:正式发布到苹果商店的证书,这个是我们上线时候用到最多的一种证书,这个证书打包出来的ipa包对安装设备数量没有限制

    • In House: 这个证书的创建选项现在的好像只能在企业账号中才能看到,这个打包出来的app不能再苹果商店上线,对安装的设备数量也没有限制。这个可以借助一些三方平台比如蒲公英、fire实现方便安装(扫扫二维码就能下载很方便的),当然用工具iTools安装也是可以的

    • PS:选择不同类型的证书,对应着什么样发布类型,打包出来的app也有不能的使用场所。

  • CSR文件:生成证书的过程中,有一步是需要我们上传CSR文件的。为什么必须要上传它?CSR文件是用于换取证书的公钥文件,导出CSR这个过程其实就是电脑向证书机构申请凭证的过程。证书是你用电脑制作的并且颁发给你的电脑的。但是这台电脑是否具有制作证书的能力,就是要这个CSR文件来凭证。CSR从钥匙串中导出,具体步骤就不在描述。

    • 在安装了Xcode后,Xcode会在项目编译期间使用你的代码签名验证,这个验证是一个由Apple认证过的公钥-私钥对组成,私钥存储在你的钥匙串中(Mac本地,在系统实用工具中),公钥包含在证书(Certificates)中,证书在本地钥匙串和开发者账号中都有存储。既然私钥是存在于我们本地电脑的钥匙串中,而Xcode编译需要公钥和私钥,那么岂不是说这个证书申请下来,只能我们自己的电脑能用吗?当然不是这样,当同事需要用测试证书进行真机调试的时候,我们可以通过导出p12给他们使用

    • p12:又称为个人信息交换证书。此证书实际包含了cer证书对应的公钥和本地钥匙串对应的私钥信息。所以p12包含了公钥私钥,我们把p12分发给团队其他成员,再配上相应的配置文件,他们就可以正常使用了。

    • 注意:cer文件没有包含私钥,所以别人的电脑上用此证书时找不到对应私钥,从而使用不了。在导出p12的时候是点击相应的证书导出的


      导出p12.png

Identifiers:这里只说说我们平常用的App IDs,其余的几个就不说了

App ID其实就是一个App的身份证,一个App的唯一标示。在Project中称为Bundle ID


Snip20160401_5.png
  • 上图中的Explicit App ID 是精准的appID,一般在公司中就是使用的这个,因为这个才能包含下面所有的服务(一般我们用到最多的服务是推送和支付)
  • 如果我们选择Wildcard AppID,下图的服务中我们能选择的就很少了,不能进行推送测试。使用它的好处在于,我们个人开发学习的过程中需要创建许多工程,如果我们进行真机测试的话,我们不可能一个个的创建appID吧,这时候我们使用通配符创建个appID的话,我们工程的BoundId只要*前面部分是确定的,我们就可以进行真机调试。感觉个人学习中多个项目用到真机调试的时候,可以申请一个通配符AppID

通配符ID能选择的服务就很少了,并且不能进行推送测试.png
  • Devices:添加设备,告诉苹果,我的这个设备能进行真机调试,没有值得说的

  • Provisioning Profiles: 描述文件的作用是描述了可由哪台电脑,把哪个App,安装到哪台手机上面。一个描述文件的制作是需要App ID、Device、Certificate这些信息的。一般我们把配置文件分为两类:需要Device的 和 不需要Device的

不带device信息的描述文件只有发布到App Store和In House两种情况下才使用

了解这些基本的原理后,我们以后再碰见这类问题就能融会贯通,举一反三了,关于具体的申请证书方法,这些的话去百度一搜一大推,我就不重复。有错误的地方希望大家指出,谢谢。



文/liyang20160111(简书作者)
原文链接:http://www.jianshu.com/p/fed7b6d14bb6
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。