教程 搜索 / 原生 Mac IDE / 配置 App Store Connect API 密钥
📝 文字 ● 中级 更新于 2026-05-13

配置 App Store Connect API 密钥

App Store Connect API 密钥让 LingCode Agent 能够上传构建、管理 TestFlight 并查看 Provisioning 数据,无需每次重新输入 Apple ID 密码。一次生成,一次注册,之后无需再操心。

与 App Store Connect 的每一次交互——上传构建、列出你的 App、邀请 TestFlight 测试人员——最终都需要身份验证。Apple 以前的方案是 Apple ID 密码加上双重验证码,而且 Session 过期速度快得让自动化几乎无从实现。2019 年推出的新方案是 App Store Connect API:每次调用都用 Apple 颁发给你的私钥签署一个短期 JWT,权限范围由你选择的角色决定,随时可以撤销。

LingCode Agent 要代你上传构建,就需要这个私钥。没有捷径——Apple 刻意不允许通过程序创建密钥,因为密钥本身就是凭据。不过一旦生成过一次,最难的部分就永远完成了。密钥保存在你的 macOS Keychain 中,后续所有涉及 App Store Connect 的 Agent 操作——TestFlight 上传、App Store 元数据,以及未来更多功能——都会透明地使用它。

本教程介绍这一次性配置过程:如何选择角色(尽量缩小影响范围很重要)、如何下载 .p8 文件(只有一次机会),以及如何将三个值注册到 LingCode。完成后,TestFlight 上传教程是顺理成章的下一步。

你将学到

前置条件:需要付费的 Apple Developer 账户、在 App Store Connect 中具有 Account Holder 或 Admin 权限,以及已在 App Store Connect 中注册好你要发布的 App。

第 1 步:进入 App Store Connect 的"用户和访问"

1

网站上嵌套最深的页面

登录 appstoreconnect.apple.com。点击顶部导航栏中的用户和访问,再点击侧边栏中的集成,然后依次选择 App Store Connect APITeam Keys 标签页。

是的,需要点击四次才能到达。Apple 把这个页面藏得很深——到达后记得收藏最终 URL。

第 2 步:生成密钥

2

选择合适的角色

点击 Generate API Key,给它起一个便于识别的名称(例如"LingCode TestFlight"),并选择角色。

如果目标是"在对话中发布到 TestFlight",App Manager 是最合适的最低权限:足以上传和管理 TestFlight,但无法删除 App 或更改团队成员。不要为 Agent 持有的密钥使用 Admin 或 Account Holder 角色——尽量缩小潜在的影响范围。

点击 Generate,Apple 会创建该密钥。

第 3 步:立即下载 .p8 文件

3

只有一次机会

Apple 会在新密钥旁边显示 Download API Key 按钮。立刻点击下载。这是一次性下载——一旦离开当前页面,Apple 就不会再允许你下载这个 .p8 文件。届时只能撤销并重新生成。

文件名为 AuthKey_<KeyID>.p8。将其存放在下一步能找到的位置(放在"下载"文件夹即可——注册完成后可以删除)。

第 4 步:记录 Issuer ID 和 Key ID

4

三个值,一页可见

注册密钥需要以下三项信息:

  • Issuer ID — 显示在 Team Keys 页面顶部,形如 UUID(例如 69a6de70-...),每个团队唯一。
  • Key ID — 显示在刚生成的密钥旁边,由十个字母数字字符组成(例如 ABC1234DEF),每个密钥唯一。
  • .p8 文件 — 即第 3 步下载的文件。

第 5 步:将密钥注册到 LingCode

5

只需告诉 Agent 一次

打开 LingCode 中的 AI 对话面板,输入:

Save my App Store Connect API key. Issuer ID: <value>. Key ID: <value>. The .p8 is at /Users/<you>/Downloads/AuthKey_<keyid>.p8.

Agent 会调用内部的 set_asc_api_key 工具。.p8 的内容(而非文件路径)以及两个 ID 会保存到你的 macOS Keychain 中,服务名为 LingCode。之后可以从"下载"文件夹删除该文件——LingCode 已保存了自己的副本。

为什么用 Keychain?因为密钥理应和其他密钥放在一起。LingCode 不会将它们以明文写入磁盘,不会发送到远程服务器,而 Keychain 本身继承了你账户的安全边界(退出登录时锁定,FileVault 在磁盘层面加密保护)。

第 6 步:验证

6

让 Agent 确认一下

在对话中输入:Is my ASC API key set up?

Agent 会检查 Keychain 并返回结果,例如:"是的,Issuer ID 末尾为 ...abc,Key ID 为 ABC1234DEF",或"未找到已配置的 ASC 密钥"。它不会打印完整的 Issuer ID 或 .p8 内容,只显示足以确认你注册了正确密钥的信息。

第 7 步:轮换或撤销

7

团队成员变动时

如果创建该密钥的成员离开了团队,或者你怀疑密钥已泄露,请立即撤销。在 App Store Connect → Team Keys 中,点击密钥旁边的 Revoke。Apple 会立即使其失效,后续所有 API 调用都将失败。

生成新密钥后,通过相同的对话命令重新注册到 LingCode。旧的 Keychain 条目会被干净地覆盖。

下一步