苹果开发者账号小科普
相关概念
Certificate:
这是一个公钥/私钥对,用于识别谁开发了app。(举个非常通俗易懂的例子,如果没有这样的证书,任何人都可以创建一个名为'Facebook'的应用程序并假装它是对实际的Facebook应用的更新——从而诱骗用户给予自己的登录凭据。)
iOS App Development:开发证书。 这个证书适用于希望在编写代码时在物理设备上测试应用程序的开发人员。
App Store和Ad-Hoc:分发证书。 这个证书适用于开发团队准备将应用程序提供给其他人的情况 - 首先用于测试(“Ad-Hoc”),然后通过TestFlight或App Store进行一般的分发。
比如我们加入一个iOS开发团队(apple developer program)时,既可以是“member”,也可以是“admin”(后面有表格详细描述)。 任何人都可以创建开发证书,但只有具有管理员权限的人才能创建分发证书。
App ID(Identifier):
这是对应你的应用的一个独特的identifier。具体的命名规范一般是‘com.yourcompanyname.yourappname’,并且其他的一些权利(xcode里面叫entitlement)可以同App ID关联绑定,比如iCloud,Push Notification,Apple Pay等等。
List of Devices:
这可能是该过程中最烦人的部分:如果开发者想将应用程序分发给测试人员(不使用TestFlight),那么他们需要向开发者发送他们设备的“唯一设备标识符”或UDID。 需要将设备连接到计算机来查看UDID。
Provisioning Profile:
iOS App Development:用于在开发时在物理设备上测试应用程序。
Ad Hoc:用于将应用程序分发给非TestFlight测试人员(例如通过HockeyApp)。
App Store:用于通过TestFlight或App Store分发应用程序。
Provisioning Profile | Certificate | App ID | List of Devices |
---|---|---|---|
iOS App Development | iOS App Development | Yes | Yes |
Ad Hoc | App Store and Ad-Hoc | Yes | Yes |
App Store | App Store and Ad-Hoc | Yes | No |
(上面四项在激活Apple Developer Program的账号中有对应配置栏目。)因此,当iOS尝试安装应用程序时,它会检查以下内容:用于签署应用程序的私钥与证书中的公钥匹配;App ID是正确的;所需的entitlement与App ID相关联;设备本身位于设备列表中。
苹果开发者账号Membership
https://developer.apple.com/support/compare-memberships/
Member | Individual | Company | Enterprise | 备注 | ||
---|---|---|---|---|---|---|
Beta software and tools | yes | yes | yes | beta版本服务尝鲜的特权。 相关开发工具(App Store Connect, Cloudkit Dashboard的使用权限) |
||
Create teams | yes | yes | 创建团队。代理:就是注册开发者账号 的那一个,权限最高,续费和创建开发 商证书只能使用该账号。管理:管理分 发证书、管理测试设备、管理应用配置 等等。队员:没有管理权限,只能下载 和请求数据,只能做开发过程中真机调试 |
|||
Tech support incidents | yes | yes | yes | 一年两次免费帮你code找bug的机会 | ||
Testing on devices | yes to some degree | yes | yes | yes | 从xcode7开始free member的账号 也可以在真机调试应用,但是限制就 在于(一周内10个应用的限制,安装在 真机上7天过期的限制) |
另外的individual和company 还有enterprise都有100个测试 机的限制(根据type,iphone100个, ipad100个,udid唯一标识,一年后 才能更新。通过adhoc发布实现)。 包括testflight这种测试服务(外部测试者 邮件邀请上限10000)。 |
Ad-hoc distribution | yes | yes | yes | 使用Xcode将应用程序以AdHoc方式打包 ,导出ipa文件,然后用iTunes等工具将 应用程序安装到iOS中。(100台) |
||
In-house distribution | yes | 内部使用 | ||||
App store distribution | yes | yes | 发布到app store,苹果审核通过后, 其他人可以下载安装 |
|||
App store connect | yes | yes | 开发工具,连接app store | |||
Safari extensions | yes | yes | 可以同原生应用通信和分享数据。Safari app extensions会同应用一起打包并通过app store进行分发。 | |||
Capability | yes | yes | yes | 开放应用的高级功能,包括CloudKit,Game Center,Wallet,Apple Pay等等 | ||
Push notification | yes | yes | yes | 推送的发送,需要具备推送的证书(需要 program membership) | ||
Cost | free | $99 | $99 | $299 |
Company/Enterprise账号的团队角色
https://developer.apple.com/support/roles/
Team agent | Admin | Member | |
---|---|---|---|
Number Limit | 1 | 无限制 | 无限制 |
权限 | 所有资源的所有权限。 但通常负责接受协议、 更新membership以及 创建developer ID证书。 |
创建、更新以及删除 证书、应用和配置文 件(provisioning profile)。 |
使用beta软件和相关测试开发。 |
团队角色 | 通常是公司 CTO或是 DevOps团队管理。 |
通常是iOS开发者团队 和DevOps团队。通常情 况下只有部分具备较强项 目管理经验的团队成员 (项目经理)具有该权限。 主要是为了避免误删一些 重要信息。 |
对工程进行下载、测试的团队, 比如测试人员和iOS团队成员等。 |