关于 asc-app-create-ui
为开发者提供通过可见浏览器会话在 App Store Connect 网页界面创建新 App 的自动化技能,适用于需要创建应用记录且 bundle ID 已注册的场景。它要求用户登录,并在点击创建前进行确认。
主要功能
- 01通过网页界面填写新 App 信息
- 02支持 iOS、macOS、tvOS 和 visionOS
- 03创建前要求最终确认
- 04创建后通过 API 验证应用记录
- 05失败时停止并报告最后步骤
适用场景
- 01为已注册的 bundle ID 创建 App Store Connect 应用
- 02自动填写应用名称、平台、语言和 SKU
- 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”。解决方法:
- 将单选按钮元素滚动到可视区域(
scrollIntoView)。 - 直接点击单选按钮 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 执行。