# @crvouga/mockingbird-service-app-store-connect 中文文档

规范地址：https://npmcn.com/package/%40crvouga/mockingbird-service-app-store-connect/

版本：1\.11\.0
npm 元数据更新时间：2026-11-11T02:03:49.667Z
中文译文更新时间：2026-11-11T06:27:24.681Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40crvouga/mockingbird-service-app-store-connect
原文对照：https://npmcn.com/package/%40crvouga/mockingbird-service-app-store-connect/?lang=original
项目主页：https://github.com/crvouga/mockingbird/tree/main/packages/service/app-store-connect#readme
源码仓库：https://github.com/crvouga/mockingbird

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：4.4 MB，18 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2026-10-05T09:23:34.875Z
- 最新版本发布：2026-11-11T02:03:49.213Z
- 近 30 天下载量：2899（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：22（近 12 个月 22 个）

## 中文简介

App Store Connect JSON:API 模拟器,具有已核实的ES256 JWTs和TestFlight成员状态.

## 安装

```sh
npm install @crvouga/mockingbird-service-app-store-connect
```

也可以使用：`pnpm add @crvouga/mockingbird-service-app-store-connect`、`yarn add @crvouga/mockingbird-service-app-store-connect`、`bun add @crvouga/mockingbird-service-app-store-connect`

## README

# @crvouga/ mockingbird-service-app-shore-connect 互联网档案馆的存檔,存档日期2013-12-02

> 本地模拟器。 真正的API合同. 部分 [嘲笑鸟](https://github.com/crvouga/mockingbird)。 。 。 .

WIP App Store 连接模拟器,用于 JSON: API 应用程序,用户,用户邀请,β组和 β测试器. ES256签名实际上是被验证的;没有真正的苹果账户或电子邮件.

## 安装

```sh
bun add -d @crvouga/mockingbird-service-app-store-connect
```

## 使用量

```ts
import { SignJWT } from "jose"
import { createServer } from "@crvouga/mockingbird-service-app-store-connect/server"

// Test setup: a throwaway ES256 key pair. The emulator only gets the public half.
// Never use a real Apple private key here.
const pair = await crypto.subtle.generateKey(
  { name: "ECDSA", namedCurve: "P-256" }, true, ["sign", "verify"],
)
const server = await createServer({
  keys: [{ id: "mock-key", issuer: "mock-issuer", role: "ADMIN",
    publicKey: await crypto.subtle.exportKey("jwk", pair.publicKey) }],
})

// Apple publishes no JavaScript SDK, so the application signs its team JWT and calls the API
// over HTTP. Only the origin changes: server.url instead of api.appstoreconnect.apple.com.
const token = await new SignJWT({})
  .setProtectedHeader({ alg: "ES256", kid: "mock-key", typ: "JWT" })
  .setIssuer("mock-issuer")
  .setAudience("appstoreconnect-v1")
  .setIssuedAt()
  .setExpirationTime("10m")
  .sign(pair.privateKey)
const apps = await fetch(`${server.url}/v1/apps`, { headers: { authorization: `Bearer ${token}` } })
const { data } = (await apps.json()) as { data: { attributes: { name: string } }[] }
console.log(data[0]?.attributes.name) // Synthetic App

await server.close()
```

`createRuntime().fetch(Request)` 支持进程内客户端。 CLI 不可信地开始 密钥; 种子公开校验密钥通过 `/__admin/state/keys`,或者使用服务器选项. 没有静态绕行无记名标志。 模拟者从来不需要私人签名材料; 包含私人 JWK 选项被拒绝。 在测试启动时生成测试签名密钥 .

### 认证

JWT队需要ES256, `typ: JWT`已登记 `kid`,匹配发行者和 `appstoreconnect-v1` 对象,有效 `iat`编号 :`exp`,签名验证和最长20分钟的寿命. 模拟器时钟决定了过期 . `enabled: false` 取消种子密钥。 可选范围 请求限制 GET 路径/ query 参数; 限制/ coursor/ sort 在匹配时被忽略为 由苹果公司记录。 无效的认证返回 JSON:API 401 在突变前.

范围写作政策遵循了苹果的团队/TestFlight指南:ADMIN/ACCOUNT HOLDER 可能写入所有支持的表面; APP MANAGER 可能管理β组/测试器并创建 用户邀请。 其他种子角色以403被否定写作. 阅读授权和 应用特定角色限制简化;见下文限制.

### 路线

-   获取 `/v1/apps`, (中文(简体) ), `/v1/users`, (中文(简体) ), `/v1/userInvitations`, (中文(简体) ), `/v1/betaGroups`, (中文(简体) ), `/v1/betaTesters`。 。 。 .
-   邮政 `/v1/userInvitations`, (中文(简体) ), `/v1/betaGroups`, (中文(简体) ), `/v1/betaTesters`。 。 。 .
-   获取 `/v1/betaGroups/{id}/betaTesters`。 。 。 .
-   邮政/电子邮件 `/v1/betaGroups/{id}/relationships/betaTesters`。 。 。 .
-   邮政 `/v1/users/{id}/relationships/visibleApps`。 。 。 .
-   迪莱特 `/v1/users/{id}` 财务报告和审定财务报表 `/v1/userInvitations/{id}`。 。 。 .

列表支持限制/ 曲线, 稀有 `fields[type]`,名称/电子邮件过滤器和请求 用于组/测试者的应用过滤器. `links.next` 保留在配置的本地来源上并保留 公共名称空间。 关系书写在改变任何东西之前验证每个目标; 删除测试者成员不删除测试者、组或应用程序用户. 复制测试器/邀请电子邮件返回一个409 JSON:API错误,也可以被错误注入.

### 控件

种子 `resources` 作为JSON:API记录和 `keys` 用作公共核查钥匙。 种子组/酯 和用户/可见的App关系初始化可持久边缘集合. `/__admin/state` 曝光情况 `resources`, (中文(简体) ), `keys`, (中文(简体) ), `memberships`, (中文(简体) ), `visibleApps` 用于合成装置. 标准重置,有时光线快照/快取,时钟,请求日记和断层. 请求使用页眉, `/__admin/ns/<name>/…` 路径或绘图的无记名证书命名空间; `adminPrefix` 移动保留树。 期刊没有JWT或请求机构. 预设 : `unauthorized`, (中文(简体) ), `forbidden`, (中文(简体) ), `duplicate`, (中文(简体) ), `rate_limited`, (中文(简体) ), `server_error`, (中文(简体) ), `connection_drop`;通用断层也支持确定性延迟. 没有释放出网络用户 .

### 核查

`bun test` 通过原始获取、实际签名、使用 独立生成 jose ES256 键, JWT 拒绝/撤销, 范围写入,种子边缘, 服务 HTTP, 命名空间/ 重置/ 错误控制, OpenAPI 随机行走和故意的相差 . 消费者是该期报道的"地表"的港口,并非没有私人应用代码. 没有要求官方 SDK 。 没有使用实时账户证书或写作. `APP_STORE_CONNECT_TOKEN=… bun run parity` 安全地探测出单一的应用程序列表响应形状; 缺少证书出口 2。 这不是一个完全的供应商随机行走平等主张.

合同来源:苹果公司 [官方 OpenAPI 下载](https://developer.apple.com/sample-code/app-store-connect/app-store-connect-openapi-specification.zip), (中文(简体) ), [JWT指南](https://developer.apple.com/documentation/appstoreconnectapi/generating-tokens-for-api-requests), (中文(简体) ), [团队指南](https://developer.apple.com/help/app-store-connect/manage-your-team/add-and-edit-users/), (中文(简体) ), 财务报告和审定财务报表 [外部测试器指南](https://developer.apple.com/help/app-store-connect/test-a-beta-version/invite-external-testers)。 。 。 . 请求计划从已公布的 OpenAPI 中保留;响应字段是一个范围子集.

## 故意不模拟

二进制上传,App Store发布,真实邀请电子邮件,构建,设备安装, TestFlight审查先决条件和用户接受邀请. 个人钥匙 不相干的Apple API的长生代号在这个团队键表面之外. 不错 读取权限,每个应用程序密钥访问,高级角色分配限制,关系 扩大/纳入和生产重复诊断变体得不到保证. 管理固定编辑可以构建活的API禁止的状态;种子一致的记录.

## API 密码

根运行时间导出 : `AppStoreConnectAPI`, (中文(简体) ), `APP_STORE_CONNECT_NAMESPACE`, (中文(简体) ), `DEFAULT_RESOURCES`, (中文(简体) ), `createRuntime`, (中文(简体) ), `APP_STORE_CONNECT_PRESETS`, (中文(简体) ), `document`, (中文(简体) ), `operationIds`, (中文(简体) ), `supportedOperationIds`。 。 。 . 类型 : `ApiKey`, (中文(简体) ), `ResourceType`, (中文(简体) ), `Linkage`, (中文(简体) ), `Resource`, (中文(简体) ), `AppStoreConnectAPIOptions`, (中文(简体) ), `AppStoreConnectRuntimeOptions`, (中文(简体) ), `AppStoreConnectRuntime`, (中文(简体) ), `OperationId`, (中文(简体) ), `SupportedOperationId`。 。 。 . 这个 `/server` 进口 `createServer`, (中文(简体) ), `serveTarget`, (中文(简体) ), `DEFAULT_PORT`。 。 。 .

## 常见问题

### @crvouga/mockingbird-service-app-store-connect 是什么？

App Store Connect JSON:API 模拟器,具有已核实的ES256 JWTs和TestFlight成员状态\.

### 如何安装 @crvouga/mockingbird-service-app-store-connect？

在项目目录运行 npm install @crvouga/mockingbird-service-app-store-connect，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mockingbird-app-store-connect，可以用 npx mockingbird-app-store-connect 直接运行。

### @crvouga/mockingbird-service-app-store-connect 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @crvouga/mockingbird-service-app-store-connect 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @crvouga/mockingbird-service-app-store-connect 可以商用吗？

@crvouga/mockingbird-service-app-store-connect 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @crvouga/mockingbird-service-app-store-connect 的下载量有多少？

根据 npm 官方下载统计，@crvouga/mockingbird-service-app-store-connect 在 2026/10/11 – 2026/11/09 这 30 天内被下载 2,899 次，日均约 97 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @crvouga/mockingbird-service-app-store-connect 还在维护吗？

最新版本 1\.11\.0 发布于 2026/11/11（今天）；至今共发布 22 个版本，其中过去 12 个月发布了 22 个；首次发布于 2026/10/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

