如何创建 App Store Connect API 密钥
Shipcue 通过 Apple 的 App Store Connect API 读取审核状态并发布版本。为此,它需要你要关注的每个账户各提供一个 API 密钥。下面一步步告诉你怎么创建。
Team 密钥还是 Individual 密钥?
App Store Connect 有两种 API 密钥,Shipcue 都支持。
- Team 密钥(推荐)。由团队的 Admin 创建。它可以看到团队的所有 App,权限取决于你为密钥选择的角色,并附带一个 Issuer ID。
- Individual 密钥。在你自己的用户资料中创建。它的角色和 App 访问范围与你的用户相同,所以只能看到你能看到的 App。它没有 Issuer ID。你需要有“Generate Individual API Keys”权限,团队 Admin 可以授予你。
如果你为客户工作,Individual 密钥通常更省事:不用让 Admin 替你创建密钥,只需要有这项权限。
密钥应该选哪个角色?
选择刚好够用的最小角色:
- App Manager:最适合 Shipcue。它可以发布和撤回版本、控制分阶段发布,也能设置推送所需的 webhook,但不能管理用户。
- Admin:也能用,但它还能添加和移除用户。保存在手机上的密钥最好避免使用这个角色。
- Developer:只能查看。你打开 Shipcue 或下拉刷新时,它会显示当前状态,但无法设置推送,也无法发布或撤回。
请专门为 Shipcue 新建一个密钥。不要重复使用 CI 或其他工具依赖的密钥,这样撤销其中一个时不会影响另一个。
创建 Team 密钥
-
打开 API 密钥页面
在浏览器中以 Admin 身份登录 App Store Connect。打开 Users and Access,选择 Integrations 标签页,然后点左侧栏的 App Store Connect API。如果页面上有 Request Access 按钮,则需要由 Account Holder 申请一次 API 访问权限。
-
生成密钥
确认选中的是 Team Keys,然后点 Generate API Key(或 + 按钮)。起一个以后能认出来的名字,例如“Shipcue”。在 Access 下选择 App Manager,然后点 Generate。
-
下载 .p8 文件
点新密钥旁边的 Download API Key。Apple 只允许下载一次,也不会保留副本。文件名以 AuthKey_ 开头,后面是 Key ID,例如 AuthKey_ABCD123456.p8。请把它保存在安全的地方,比如你的密码管理器。
-
复制 Issuer ID
Issuer ID 显示在密钥列表的上方,形如 69a6de8f-3c2e-47e3-e053-5b8c7c11a4d1。Team 密钥需要在 Shipcue 中填写它。
创建 Individual 密钥
-
打开你的个人资料
在 App Store Connect 中打开你的用户资料,向下滚动到 Individual API Key。如果没有 Generate API Key 按钮,请向团队 Admin 申请“Generate Individual API Keys”权限。
-
生成并下载
点 Generate API Key,再点 Download API Key。和 Team 密钥一样,.p8 文件只能下载一次。Individual 密钥没有 Issuer ID。
把密钥添加到 Shipcue
-
开始 Add Account
在 Shipcue 中点按 Add Account。从“文件”App 选择 .p8 文件,或从 Mac 用 AirDrop 发送并选择 Shipcue,也可以粘贴密钥文本。
-
核对信息
如果文件仍保留 AuthKey_ 的名字,Shipcue 会自动填好 Key ID。Team 密钥需要粘贴 Issuer ID,Individual 密钥则留空。给账户起一个你能认出来的名字,例如“Client: Acme”。
-
让 Shipcue 向 Apple 验证
Shipcue 会向 App Store Connect 询问这个密钥能看到哪些 App。刚创建的密钥可能要过一两分钟才会生效,Shipcue 会持续重试。
-
选择你的 App
选择要关注的 App。使用 Shipcue Pro 时,Shipcue 会为每个 App 在 Apple 那里添加一个 webhook,让状态变化以推送的形式送达你。Apple 允许每个 App 最多 10 个 webhook,Shipcue 用 1 个。
补充说明
- 默认情况下,密钥保存在你的 iCloud Keychain 中,由 Apple 端到端加密,这样你的 iPhone 和 iPad 都能使用。你也可以选择只把密钥保存在一台设备上。在 Private 模式下,它不会传到我们的服务器。
- 你添加的每个 App Store Connect 账户都需要自己的密钥。
- 要让密钥在所有地方失效,请在 App Store Connect 中撤销:Users and Access › Integrations › App Store Connect API,选中密钥,点 Revoke。如果你丢了设备,这也是第一步(见丢了设备?)。
- 切勿把 .p8 文件或其内容发给任何人,包括我们。
常见问题
可以再次下载 .p8 文件吗?
不可以。Apple 只提供一次下载。如果文件丢了,请在 App Store Connect 中撤销该密钥并创建一个新的。在 Shipcue 中,对该账户使用 Replace Key,这样它的 App 和设置都会保留。
Issuer ID 在哪里找?
在 App Store Connect 的 Users and Access › Integrations › App Store Connect API 中,位于 Team 密钥列表的上方。Individual 密钥没有 Issuer ID。
可以使用 Developer 角色的密钥吗?
可以,但只能查看状态。Developer 密钥无法创建 webhook,所以这些 App 没有推送,也无法发布或撤回。要使用全部功能,请用 App Manager。
Shipcue 需要我的 Apple 账户密码吗?
不需要。Shipcue 只使用 API 密钥。不需要用你的 Apple 账户登录,也不需要双重认证码。