View on GitHub

pingju020‘s blog

私人技术总结、分享、记录博客.

苹果开发者账号维护指导手册

iOS的应用想要打包发布,其中一个很关键的环节就是要经过相应的苹果开发者账号生成根证书以及绑定单个应用的bundleId的provision frofile。将这两个证书安装到本地,才能对工程进行相应的配置,然后archive。苹果的开发者账号又分成企业账号、公司账号和个人开发者账号三种。

一、企业账号

1.1 账号申请

企业账号的申请具体步骤如下:

图1

图2

图3

1.2 开通开发者权限

图4

图5

申请企业账号需要邓白氏编码,如果你们公司已经申请过公司(Company)账号的话,那就不用再申请邓白氏编码了,如果没有的话,就需要申请邓白氏编码。关于申请邓白氏码,本文末尾会特别说明。

图6

图7

图8

注:红色框就填申请来的邓白氏编码,蓝色框选择公司人数的时候要选100+,绿色框内填写公司官网时需要注意一下,网站必须支持国外访问

图9

接下来就是等待审核了,审核期间Apple 审核人员可能会给你们打电话,确认相关事宜。注意:申请企业账号的用途一定要说是供内部使用,否则不可能通过,选择人数的时候要选择100+,即使没有那么多人,她问的时候就说公司的下个目标是在其他城市开分公司, 到时候人数就会超过100。   

1.3 成员管理

企业账号允许多个开发者进行协作开发,可设置多个Apple ID,分2种管理级别。可以正常使用的企业账号登录后如下图所示:

图10

选择上图中的两个“people”中的任何一个,进入用户管理:

图11

由图可以看到,企业账号下的协作开发者分3类:Team Agent、Admins和Members。实际使用中,agent可以邀请项目的打包发布人员成为协作开发者。

1.3.1 邀请成员

点击上图中邀请,进入邀请成为协作开发者界面:

图12

可以在Invite as Admins下面的输入框填入需要admin权限的协作开发者Apple ID,在Invite as Members下的输入框中填入需要一般权限的写作开发者Apple ID。填好后点击Invite按钮,苹果就会发送邀请邮件到相关AppleID对应的邮箱。邮件大概如下:

图13

收到该邮件的用户点击邮件中的View invitation,登录自己的账号,Accept 此邀请即可成为邀请的企业账号的一个协作开发者。

此时登入自己的开发者账号,即可看到如下效果:

图14

1.3.2 Apple Developer Program Team Roles

各种角色权限的范围如下图所示:

角色范围 角色范围

1.4 证书生成

开发者证书分为两种类型:Development Certificate(开发证书)和Production Certificate(发布证书),一定要分别申请两次,有些网上的说明只是建议说分别申请,实际是必须分别申请,否则在真机调试和发布的时候会碰到一些问题。完整的证书生成过程分四步:从苹果电脑上申请CSR文件、生成根证书,添加应用id以及生成provision profile。 以下为生产环境为例,测试环境的证书生产与生产环境类似。只是在注册AppID的时候需要绑定可测试手机的UDID。

1.4.1 从苹果电脑上申请CSR文件

一般是在Launchpad中的“其他”文件夹中就能看到,如图:

图15

如果找不到的话可以直接在Finder里搜索“钥匙串访问”。

图16

图17

图18

1.4.2 生成根证书

进入企业账号,在首页选择Certificates, Identifiers & Profiles。打开后选择Certificates下面的Production,效果如下图:

图19

这幅图所展示的就是该企业账号下所有的生产证书。其中后面标了iOS Distribution的表示的是生产根证书。

一般情况下,一个企业账号应该保证只有一个生产根证书。(注,一个企业账号最多只允许同时存在两个生产根证书,只有第一个证书快要到期,需要考虑替换证书的时候,才允许有两个证书共存)

选择右上方的“+”,可以进入添加证书:

图20

如果要生成生产根证书,选择图中红框标注的项;要生成生产推送证书,选择图中绿框标注的项;要生成测试根证书,选择图中蓝框标注的项;要生成测试推送证书,则选择紫框标注的项。

这里,只重点介绍生产根证书的制作。测试根证书与生产根证书制作步骤类似,而推送证书只是在根证书的基础上多了跟应用挂钩,所以均不再做解释。

选择上图中的红框标注项,continue,进入下一步:(注:这里的红框不可选,是因为账号下已经有两个生产根证书的缘故。)

图21

这里是生成csr文件的说明,忽略,直接continue。

图22

如图所示点击choose file,选择之前保存在桌面的CSR文件,Cenerate,根证书就生成好了。

这时,可以直接Download该证书,双击安装到电脑。

安装后在钥匙串可以看到该证书:

图23

如需要将该证书共享给其他开发者使用,还需要将证书导出.p12文件。具体步骤如下:

图24

图25

图26

至此,根证书生成完成。

1.4.3 添加应用id

有了根证书后,下一步应该做的就是注册自己的应用。这里以bunlderId为com.myteam.test来说明。

进入Certificates, Identifiers & Profiles后选择“App IDs”

图27

选择右上角的“+”按钮,进入App ID添加:

图28

图29

如上面两张图所示,分别填写app的名称和Bundle ID,勾选需要的Application Services后点continue,进入下图:

图30

确认没有问题后,点Generate,再选择Done。添加App ID结束。添加完成后的效果如下:

图31

注:Application Services一般情况下使用Push Notifications就好, 如果游戏类应用的话需要勾选Game Center,使用钱包功能的需要包含Wallet,以此类推。另外,如果添加App ID时Application Services勾选不对也可以通过Edit再编辑。

1.4.4 生成provision profile

provision profile是跟应用一一对应起来的,所以一定要注册过App ID后才能生成对应的provision profile来。

图32

图33

图34

图35

图36

填写完成后,点击“Generate”按钮。

图37

直接在此处download,将profile文件下载到本机,然后双击安装到电脑即可用来打包应用。

1.5 证书维护

Apple 企业账号的证书制作一般开发人员都能胜任。但是维护就相对比较复杂了。这里涉及到最主要的问题是Apple对企业账号的使用限制。

首先区别于个人开发者账号和公司开发者账号,企业账号具有如下特点:

其中,正是由于第3条的特点,给开发者在测试和分发 App 时,带来了极大的便利。所以,一般开发者申请使用苹果企业账号(或苹果企业签名),也是为了这个特点。

但是,因为苹果对于 App 的安装有着非常严格的限制,所以苹果对企业账号的使用也给出了种种严格的条款,详见:Apple Developer - Terms and Agreements 。其中,最重要的条款是:

使用企业账号签名后的应用,只可以用于企业内部员工安装,不可以公开下载。

因为这些条件的限制,苹果的企业账号使用上也是有诸多限制。比如,企业根证书的有效期只有3年,而每个应用的provision profile的有效期仅1年。一旦发布的企业应用,根证书或者provision profile中任何一个过了有效期,便可导致该应用彻底无法启动。

所以证书维护,其实涉及以下方面: provision profile 替换根证书替换 以及 防止账号被封

1.5.1 provision profile 替换

provision profile过期后,已经安装的使用该pofile的应用将无法启动。所以要保证应用的正常使用就要按照如下方法来做好提前替换的工作。

tips: 防止忘记provision profile的过期时间的比较实用的方法是,将证书命名加上过期时间,如下图所示:

图38

图中标注的20170506和20180620就是分别表示证书的过期时间。这样每次打包前,确认证书等配置时,就能清楚看到profile的过期时间。

1.5.2 根证书替换

根证书的有效期比profile要长很多。但是也正因为长,反而容易被忽略。 而根证书一旦过期,所有使用该证书的应用将全部不可用。只能重新发布新的证书的包替换。 应用的开发者因为只留神在自己的应用上,且根证书的有效期会限制profile的有效期,所以开发者一般比较容易忽略根证书。

所以对于根证书的替换,建议如下操作:

有一个比较实用的方法就是管理员自己有一个专业的证书存储目录。里面分文件夹存储各个应用的根证书和provision profile文件,文件夹的命名加上证书过期时间,如下图:

图39

1.5.3 防止账号被封

很多开发者在违背了苹果对企业账号的限制条款后,导致企业账号被封,从而造成了不小的损失。所以,为了应用的正常使用建议做到如下几点:

  1. 尽量不要将应用公开上传到蒲公英等平台发布;
  2. 不要将应用的安装链接公开,做到只在企业内部安装使用;
  3. p12 证书文件和 Provisioning Profile 文件不要随意导入导出,最好做到专人专机;
  4. 开发者账号千万不能外借;
  5. 不要将 p12 证书文件和 Provisioning Profiles 文件上传到第三方打包平台;
  6. 测试的时候最好在企业内部网络进行,如果需要连接 Internet 的话,请注意网络环境不要发生太大的变化;
  7. 网络电话VOIP、积分墙、游戏充值平台等类型的 App 都很容易被苹果封号;
  8. 尽量将应用发布到App Store

1.5.4 一些异常情况