App Store Connect
生成 App Store Connect API 密钥,选择密钥类型并列出允许 ZAI 调用的 API。
在连接器的 访问内容 → 添加访问 中,从 服务预设 选择 App Store Connect。这组凭证让 ZAI 调用 App Store Connect API,例如查看构建和审核状态、读取销售报表、管理 TestFlight 测试员。
获取与填写凭证
在 App Store Connect 生成 API 密钥后,页面只允许下载一次私钥文件,文件名形如 AuthKey_2X9R4HXF34.p8。
- Key ID:密钥列表里的 Key ID,例如
2X9R4HXF34。 - 私钥:用文本编辑器打开
.p8文件,复制全部内容(含-----BEGIN PRIVATE KEY-----两行)粘贴进来。
平台用私钥为每次请求签发有效期不超过 20 分钟的令牌,私钥本身不会进入沙箱。替换凭证时 Key ID 与私钥一起更换:App Store Connect 的新密钥带着新的 Key ID。
建议为 ZAI 单独生成一把密钥:Apple 按密钥计算每小时的请求次数,与 CI 共用一把密钥会互相挤占。官方说明:Creating API Keys for App Store Connect API。
密钥类型
| 类型 | 生成位置 | 能访问的 App 与操作 |
|---|---|---|
| 团队密钥 | 用户和访问 → 集成 → App Store Connect API → 团队密钥,需要管理员 | 团队的全部 App,权限由生成时选择的职能决定 |
| 个人密钥 | 个人资料页的 个人 API 密钥,需要管理员授予生成权限 | 该用户能访问的 App 与职能;不能调用证书与描述文件接口,也拿不到销售和财务报表 |
只想让 ZAI 接触部分 App 时用个人密钥:平台不按 App 限制请求,App 范围以 Apple 侧的密钥权限为准。需要销售或财务报表时只能用团队密钥,可以另建一份团队密钥凭证,只允许报表 API。
Issuer ID
团队密钥需要填写 Issuer ID,它显示在团队密钥列表上方,形如 57246542-96fe-1a63-e053-0824d011072a。个人密钥没有 Issuer ID,不用填。
服务地址
服务地址固定为 https://api.appstoreconnect.apple.com,不用填写。
允许的 API
每行写一个 API:请求方法加 Apple 文档里的路径,路径里的 ID 写成 {id},例如:
GET /v1/apps/{id}/builds
GET /v1/apps/{id}/appStoreVersions
POST /v1/betaGroups/{id}/relationships/betaTestersZAI 只能调用列表中的 API,查询参数不受限制。表单提供三个快捷按钮:
- 加入全部只读 API:Apple 规格里未废弃的全部 GET 接口,包括审核状态、价格、报表等。
- 加入分析报表申请:
POST /v1/analyticsReportRequests。分析报表要先申请才会生成。 - 加入 TestFlight 管理:建立和修改测试组、邀请测试员、增减组成员、把构建分给测试组或测试员、填写测试说明、发送构建通知。不含提交 Beta 审核、让构建过期、修改出口合规与 Beta 审核信息,以及删除测试组、测试员和反馈;需要时手动添加。
修改 App 信息、提交审核、管理证书与描述文件、用户和价格等写操作不在快捷按钮里,确需开放时逐条手动添加。Apple 以后新增的 API 也要手动添加才会放行。
只读 API 也能带出敏感数据:审核详情含给审核员的演示账号密码,可以通过 include 参数随 App 或版本一起返回;一次性优惠码接口返回可兑换的优惠码。不希望 ZAI 读到时,不要放行这些接口及能 include 它们的接口。
允许的 API 与密钥类型在创建时确定,之后不能修改;需要调整时,另添加一份凭证。
验证
保存后请 ZAI 调用一项已允许的只读 API,例如 GET /v1/apps?limit=1(需先把 GET /v1/apps 加入允许的 API)。返回 401 时,核对 Key ID 与私钥是否来自同一把密钥、团队密钥的 Issuer ID 是否正确,以及密钥是否已在 App Store Connect 撤销;返回 403 表示密钥的职能不允许这项操作。
上传截图等资源和下载分析报表时,App Store Connect 会返回其他 Apple 主机上的临时地址,这些请求不带凭证。沙箱的出网级别不放行这些主机时,需要在连接器里另加对应域名。其余排查见验证与排错。