mcpField
A
asc-app-create-ui

asc-app-create-ui

github.com/rorkai开发1.1k6.8k 次安装2 天前更新
代码仓库

关于 asc-app-create-ui

为开发者提供通过可见浏览器会话在 App Store Connect 网页界面创建新 App 的自动化技能,适用于需要创建应用记录且 bundle ID 已注册的场景。它要求用户登录,并在点击创建前进行确认。

主要功能

  1. 01通过网页界面填写新 App 信息
  2. 02支持 iOS、macOS、tvOS 和 visionOS
  3. 03创建前要求最终确认
  4. 04创建后通过 API 验证应用记录
  5. 05失败时停止并报告最后步骤

适用场景

  1. 01为已注册的 bundle ID 创建 App Store Connect 应用
  2. 02自动填写应用名称、平台、语言和 SKU
  3. 03在创建应用后核对应用记录

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rorkai/app-store-connect-cli-skills --skill asc-app-create-ui

安装后在 Claude Code 中输入/asc-app-create-ui确认已加载。

详细介绍

asc app create(UI 自动化)

使用此技能通过操作网页 UI 创建新的 App Store Connect 应用。 这是可选的、本地自动化操作,要求用户已登录。

前提条件

  • 有可用的浏览器自动化工具(Playwright、Cursor browser MCP 或同类工具)。
  • 用户已登录 App Store Connect(或可以完成登录和双重认证)。
  • Bundle ID 必须已在 Apple Developer 门户中注册。
  • 已知所需输入:
    • 应用名称(最多 30 个字符)
    • Bundle ID(必须已存在,且未被其他应用使用)
    • SKU
    • 平台(iOS、macOS、tvOS、visionOS)
    • 主要语言
    • 用户访问权限(完全访问或有限访问)

安全防护措施

  • 切勿导出或存储 Cookie。
  • 仅使用可见的浏览器会话。
  • 点击“Create”前暂停,以进行最终确认(对于独立脚本)。
  • 失败时不要自动重试 Create 操作。

工作流

1. 预检:注册 Bundle ID 并确认不存在现有应用
# Register the bundle ID via public API (if not already registered)
asc bundle-ids create --identifier "com.example.app" --name "My App" --platform IOS

# Confirm no app record exists yet
asc apps list --bundle-id "com.example.app" --output json
2. 打开 App Store Connect

前往 https://appstoreconnect.apple.com/apps,并确认用户已登录。

3. 打开“New App”表单

“New App”按钮(蓝色“+”图标)会打开一个下拉菜单,不会直接打开对话框。

  • 点击“New App”按钮,打开下拉菜单。
  • 点击下拉菜单中的“New App”菜单项。
  • 创建对话框/模态框随即出现。
4. 按顺序填写必填字段
平台(复选框)

平台使用复选框(不是单选按钮)。点击所需平台对应的复选框:

  • iOS、macOS、tvOS、visionOS
  • 可以选择多个平台。
名称(文本输入框)
  • 标签:Name
  • 最多 30 个字符。
主要语言(选择框/组合框)
  • 标签:Primary Language
  • 使用 select_option 或同类方法选择语言标签(例如 "English (U.S.)")。
Bundle ID(选择框/组合框)
  • 标签:Bundle ID
  • 这是一个 <select> 下拉菜单。选择平台后,选项会异步加载。
  • 等待下拉菜单加载完毕(初始会显示“Loading...”)。
  • 根据同时包含名称和标识符的标签进行选择: "My App - com.example.app"
SKU(文本输入框)
  • 标签:SKU
用户访问权限(单选按钮)——必填
  • **此字段为必填项。**必须先选择一个选项,“Create”按钮才会启用。
  • 选项:Limited Access 或 Full Access。
  • 这是带有 <span> 覆盖层的自定义单选按钮。
  • **已知问题:**基于无障碍功能的点击可能会被覆盖层 <span> 拦截。
  • **解决方法:**先对单选按钮元素使用 scrollIntoView,然后直接点击单选按钮引用。这样可以绕过覆盖层拦截。
5. 点击 Create
  • 只有在填写所有必填字段并且选择用户访问权限后,“Create”按钮才会启用。
  • 点击后,按钮文本会在处理期间变为“Creating”。
  • 等待跳转到新应用页面(URL 模式:/apps/<APP_ID>/...)。
6. 通过 API 验证创建结果
asc apps view --id "APP_ID" --output json --pretty
# or
asc apps list --bundle-id "com.example.app" --output json
7. 移交给创建后的设置流程
asc app-setup info set --app "APP_ID" --primary-locale "en-US"
asc app-setup categories set --app "APP_ID" --primary GAMES
asc pricing availability create \
  --app "APP_ID" \
  --territory "USA,GBR" \
  --available true \
  --available-in-new-territories true

仅在首次初始化可用性时使用 asc pricing availability create。如果 Apple 拒绝通过公共 API 进行初始化,请使用 asc web auth login --apple-id "EMAIL" 登录网页会话,然后使用 asc web apps availability create --app "APP_ID" --territory "USA,GBR" --available-in-new-territories true 重试,或者在 App Store Connect 中配置“定价与可用性”。如果应用已有可用性设置,后续更改地区时请改用 asc pricing availability edit --app "APP_ID" ...。

已知 UI 自动化问题

“New App”是下拉菜单,不是直接操作

首次点击会打开一个包含“New App”和“New App Bundle”的菜单。必须点击菜单项,而不只是点击按钮。 ###“用户访问权限”单选按钮有 span 覆盖层 Apple 的自定义单选按钮会将 <input type="radio"> 包裹在经过样式设置的 <span> 元素中。直接通过 ref 点击可能会失败,并提示“click target intercepted”。解决方法:

  1. 将单选按钮元素滚动到可视区域(scrollIntoView)。
  2. 直接点击单选按钮 ref(不要通过偏移量或点击标签)。
Bundle ID 下拉菜单异步加载

选择平台后,Bundle ID 下拉菜单会显示“Loading...”,并处于禁用状态。请等待它启用并加载选项后再进行选择。

browser_fill 可能不会触发表单验证

Apple 的 Ember.js 表单使用自定义 change 处理程序。browser_fill(原子设置)可能不会触发验证。如果填完所有字段后 Create 按钮仍处于禁用状态:

  • 在至少一个文本字段中逐字重新输入内容。
  • 或点击该字段,清空内容,然后逐字输入。

失败处理

  • 如果无法找到任何字段或按钮,请停止并请求用户协助。
  • 截取屏幕截图,并报告最后确认完成的步骤。
  • 不要自动重试点击 Create。
  • 如果失败,用户应检查浏览器中的验证错误(红色轮廓、行内消息)。

备注

  • 此技能是对缺少公共 API 的一种变通方法。Apple 的文档明确指出:“不要使用此 API 创建新应用;请改为在 App Store Connect 网站上创建新应用。”
  • UI 选择器可能随时发生变化。优先使用 role、label 和 text 选择器,而非 CSS。
  • 唯一需要手动完成的步骤应是登录。其余所有操作均可由 Agent 执行。

评论

支持 Markdown