ASC应用创建(UI自动化)Skill asc-app-create-ui

这个技能用于在App Store Connect上通过浏览器自动化创建新应用,当公共API不可用时。它通过驱动网页表单,自动化填写应用名称、Bundle ID、SKU等必填信息,确保开发者能高效创建iOS、macOS等平台的应用记录。关键词:App Store Connect, UI自动化, 应用创建, 苹果开发者, 浏览器驱动, 移动应用开发, 自动化测试

移动开发 0 次安装 0 次浏览 更新于 3/13/2026

name: asc-app-create-ui description: 通过浏览器自动化创建一个新的 App Store Connect 应用记录。当没有公共 API 用于应用创建,你需要一个代理驱动新应用表单时使用。

ASC 应用创建(UI 自动化)

使用这个技能通过驱动网页UI来创建一个新的App Store Connect应用。 这是可选的、仅限本地的自动化,要求用户已登录。

前提条件

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

安全护栏

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

工作流程

1. 预检:注册 Bundle ID 并验证无现有应用

# 通过公共 API 注册 Bundle ID(如果尚未注册)
asc bundle-ids create --identifier "com.example.app" --name "我的应用" --platform IOS

# 确认尚无应用记录
asc apps list --bundle-id "com.example.app" --output json

2. 打开 App Store Connect

导航到 https://appstoreconnect.apple.com/apps 并确保用户已登录。

3. 打开新应用表单

“新应用”按钮(蓝色“+”图标)打开一个下拉菜单,而不是直接对话框。

  • 点击“新应用”按钮打开下拉菜单。
  • 点击下拉菜单内的“新应用”菜单项
  • 创建对话框/模态框出现。

4. 填写必填字段(按顺序)

平台(复选框)

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

  • iOS、macOS、tvOS、visionOS
  • 可以选择多个。

名称(文本输入)

  • 标签:名称
  • 最多30个字符。

主要语言(选择/组合框)

  • 标签:主要语言
  • 使用 select_option 或等效方法,语言标签(例如,“英语(美国)”)。

Bundle ID(选择/组合框)

  • 标签:Bundle ID
  • 这是一个 <select> 下拉菜单。选项在选择平台后异步加载。
  • 等待下拉菜单完成加载(初始显示“加载中…”)。
  • 通过匹配标签文本选择,包括名称和标识符: “我的应用 - com.example.app”

SKU(文本输入)

  • 标签:SKU

用户访问权限(单选按钮)——必需

  • 此字段是必需的。 创建按钮在未选择一个选项前保持禁用。
  • 选项:有限访问完全访问
  • 这些是带有 <span> 覆盖的自定义单选按钮。
  • 已知问题: 基于可访问性的点击可能被覆盖 <span> 拦截。
  • 解决方法: 首先在单选元素上使用 scrollIntoView,然后直接点击单选引用。这可以绕过覆盖拦截。

5. 点击创建

  • “创建”按钮在所有必填字段填写且用户访问权限选择前保持禁用。
  • 点击后,按钮文本变为“创建中”以进行处理。
  • 等待导航到新应用的页面(URL模式:/apps/<APP_ID>/...)。

6. 通过 API 验证创建

asc apps get --id "APP_ID" --output json --pretty
# 或
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 app-setup availability set --app "APP_ID" --territory "USA,GBR" --available true

已知 UI 自动化问题

“新应用”是下拉菜单,而非直接操作

首次点击打开一个包含“新应用”和“新应用捆绑包”的菜单。必须点击菜单项,而不仅仅是按钮。

用户访问权限单选按钮有 span 覆盖

苹果的自定义单选按钮用样式化的 <span> 元素包裹 <input type="radio">。直接基于引用的点击可能因“点击目标被拦截”而失败。修复方法:

  1. 将单选元素滚动到视图中(scrollIntoView)。
  2. 直接点击单选引用(不通过偏移或标签点击)。

Bundle ID 下拉菜单异步加载

选择平台后,Bundle ID 下拉菜单显示“加载中…”并禁用。等待其变为启用并填充后再选择。

browser_fill 可能不会触发表单验证

苹果的 Ember.js 表单使用自定义变更处理程序。browser_fill(原子设置)可能不会触发验证。如果填写所有字段后创建按钮仍保持禁用:

  • 在至少一个文本字段中慢慢重新输入值(逐字符)。
  • 或点击字段,清除它,并慢慢输入。

故障处理

  • 如果任何字段或按钮无法定位,停止并请求用户帮助。
  • 捕获截图并报告最后已知步骤。
  • 不自动重试创建点击。
  • 失败时,用户应检查浏览器中的验证错误(红色轮廓、内联消息)。

注意事项

  • 这个技能是对缺少公共 API 的变通。苹果的文档明确指出:“不要使用此 API 创建新应用;相反,在 App Store Connect 网站上创建新应用。”
  • UI 选择器可能会在无通知的情况下改变。优先使用角色/标签/文本选择器而非 CSS。
  • 唯一的手动步骤应该是登录。其他一切都可以由代理驱动。