用途
本技能用于通过 App Store Connect REST API 与 xcodebuild 命令行,对 App Store Connect 进行完整管理,包括应用元数据、截图、评论、TestFlight、提交发布、内购订阅、报表分析以及构建上传等操作。
凭据与鉴权
凭据从 config/credentials.local.md(已加入 gitignore)加载,该文件包含:Key ID、Issuer ID、私钥路径、Team ID,以及默认联系信息(公司、邮箱、电话、版权)。
所有 API 调用都需要鉴权。使用 JWT(ES256 算法)生成令牌,payload 包含 iss、iat、exp(1200 秒)、aud(appstoreconnect-v1),请求头携带 Authorization: Bearer <token> 与 Content-Type: application/json。
核心 ID 解析(每次操作前先执行)
大多数操作需要以下 ID,更新前应先解析:
- APP_ID:GET /v1/apps
- VERSION_ID:GET /v1/apps/{APP_ID}/appStoreVersions
- LOCALIZATION_ID(版本级元数据):GET /v1/appStoreVersions/{VERSION_ID}/appStoreVersionLocalizations
- APP_INFO_ID 与 APP_INFO_LOC_ID(应用级元数据):GET /v1/apps/{APP_ID}/appInfos,再 GET /v1/appInfos/{APP_INFO_ID}/appInfoLocalizations
操作索引
- 元数据与本地化:描述、关键词、副标题、版权、分类、推广文本、多语言、AI 翻译(references/metadata-and-localization.md)
- 截图与预览:上传截图、应用预览、模拟器自动化、截图尺寸(references/screenshots-and-previews.md)
- 客户评论:列出评论、回复、删除回复、AI 辅助回复(references/reviews-and-ratings.md)
- TestFlight:Beta 群组、测试员、构建、Beta 审核提交、邀请(references/testflight.md)
- 提交与发布:提交审核、分阶段发布、版本递增、提名(references/submissions-and-releases.md)
- IAP 与订阅:内购、订阅组、促销优惠、定价(references/iap-and-subscriptions.md)
- 报表与分析:销售报表、财务报表、下载 TSV 数据(references/reports-and-analytics.md)
- 高级功能:应用内事件、自定义产品页、App Clips(references/advanced-features.md)
- 构建与部署:Xcode 归档、上传、ExportOptions、一行命令部署(references/build-and-deploy.md)
API 权限
- GET:apps、versions、localizations、reviews、builds、reports
- UPDATE:metadata、screenshots、categories、reviews、TestFlight、releases
- CREATE:versions、localizations、screenshots、IAPs、subscriptions、events
硬性限制(API 无法完成)
截至 2026 年 4 月,以下操作确认无法通过 App Store Connect REST API 完成,不要尝试以编程方式执行:
- 创建新应用:无 POST /v1/apps 端点,API 密钥会返回 403 FORBIDDEN,Fastlane produce 也无法用 API 密钥完成。需在 https://appstoreconnect.apple.com -> Apps -> + -> New App 手动创建。
- 配置 App 隐私:隐私问卷(数据收集类型、追踪声明)无 API 端点,Apple 仅提供网页向导。需在 ASC -> Apps -> [App] -> App Privacy -> Get Started 手动配置。
- 上传或更换应用图标:图标嵌入 Xcode 资源目录并打包进二进制,无独立图标上传端点,更换图标需重新构建。需在 Xcode 的 Assets.xcassets -> AppIcon 设置后归档并上传新构建。
- 获取应用图标图片:build 资源上的 iconAssetToken 可能返回图标 URL,但无专用图标下载端点,结果不稳定。建议从 Xcode 项目资源目录提取,或使用 App Store 营销图 URL。
- 删除应用:无法通过 API 删除,可下架或(若从未发布)完全移除。需在 ASC -> Apps -> [App] -> Remove App 手动操作。
- 转移应用:应用转移是两个开发者账号间的多步手动流程,无 API 支持。需在 ASC -> Apps -> [App] -> Transfer App 手动发起。
- 管理协议/合同:付费/免费应用协议、税务表单、银行信息无 API。需在 https://appstoreconnect.apple.com/agreements/ 管理。
- 配置隐私清单:PrivacyInfo.xcprivacy 文件属于 Xcode 项目,而非 ASC 元数据。需在构建前将 PrivacyInfo.xcprivacy 加入 Xcode 项目。
关于年龄分级:尽管部分指南将其列为手动,年龄分级可通过 PATCH /v1/ageRatingDeclarations/{id} 配置,本技能在 references/metadata-and-localization.md 中覆盖。
常见错误
- whatsNew 无法编辑:新应用需移除 whatsNew(仅更新版本可用)
- CREATE apps 返回 403 FORBIDDEN:这是 API 硬性限制,非权限问题,需在 ASC 门户手动创建应用
- 无效 bundle ID:确保 bundle ID 已在开发者门户注册
- JWT 过期:令牌最长 20 分钟,每次会话前重新生成
- ENTITY_ERROR.RELATIONSHIP:检查关系 ID 是否存在且类型正确
- 待处理协议:在 https://appstoreconnect.apple.com/agreements/ 接受最新协议
完整工作流清单
新应用发布:
- 手动在 App Store Connect 创建应用(无 API)
- 手动配置 App 隐私问卷(无 API)
- 手动在 Xcode 资源目录设置应用图标(图标打包进构建,无 API)
- 解析 ID:APP_ID、VERSION_ID、LOCALIZATION_ID、APP_INFO_ID
- 更新描述、关键词、promotionalText、supportUrl
- 设置副标题(最多 30 字符)、版权、分类
- 设置年龄分级声明(API 支持)
- 设置内容权利声明
- 为每种设备尺寸上传截图
- 设置审核联系信息
- 通过 xcodebuild 归档并上传构建
- 设置营销/支持/隐私 URL
- 提交 App 审核
- 可选启用分阶段发布
应用更新:
- 创建新版本(或自动递增)
- 为所有语言更新 whatsNew(发布说明)
- UI 变化时更新截图
- 上传新构建
- 提交审核
- 监控分阶段发布
持续管理:
- 监控并回复客户评论
- 管理 TestFlight Beta 测试员与构建
- 下载销售与财务报表
- 为促销创建应用内事件
- 按需更新定价与可用性
App 隐私(手动)
App 隐私必须在 App Store Connect 手动配置:ASC -> Apps -> [App] -> App Privacy。无数据收集的应用选择 "Data Not Collected"。隐私政策 URL 示例:https://yourcompany.com/privacy。
创建新应用(手动)
- 访问 https://appstoreconnect.apple.com
- Apps -> + -> New App
- 平台:iOS,主要语言:English (U.S.)
- Bundle ID:从已注册 ID 中选择(不要选 widget 扩展)
- SKU:唯一标识符(例如 appname001)