asc-app-create-ui

asc-app-create-ui

熱門

透過瀏覽器自動化建立新的 App Store Connect 應用程式紀錄。當沒有用於建立應用程式的公開 API,且需要由 Agent 來操作「新增 App」表單時使用。

950星標
50分支
更新於 2026/8/5
SKILL.md
唯讀
名稱
asc-app-create-ui
描述

透過瀏覽器自動化建立新的 App Store Connect 應用程式紀錄。當沒有用於建立應用程式的公開 API,且需要由 Agent 來操作「新增 App」表單時使用。

asc app create (UI 自動化)

使用此 Skill 透過操作網頁 UI 來建立新的 App Store Connect 應用程式。
這是主動選擇(opt-in)、僅限本地執行的自動化流程,需要使用者處於已登入狀態。

前置條件

  • 已具備瀏覽器自動化工具(Playwright、Cursor browser MCP 或同等工具)。
  • 使用者已登入 App Store Connect(或能完成登入 + 雙重驗證 2FA)。
  • Bundle ID 必須已在 Apple Developer portal 完成註冊
  • 已掌握必要的輸入資訊:
    • 應用程式名稱(App name,最多 30 個字元)
    • Bundle ID(必須存在且未被其他 App 使用)
    • SKU
    • 平台(Platform:iOS, macOS, tvOS, visionOS)
    • 主要語言(Primary language)
    • 使用者存取權限(User access:Full Access 或 Limited Access)

安全防護機制(Safety Guardrails)

  • 切勿匯出或儲存 Cookie。
  • 僅使用視覺可見的瀏覽器視窗(Visible browser session)。
  • 點擊「Create」前先暫停以進行最終確認(適用於獨立腳本)。
  • 失敗時切勿自動重試 Create 點擊動作。

工作流程(Workflow)

1. 預檢:註冊 Bundle ID 並確認尚未建立 App

# 若尚未註冊,透過公開 API 註冊 Bundle ID
asc bundle-ids create --identifier "com.example.app" --name "My App" --platform IOS

# 確認目前尚不存在該 App 紀錄
asc apps list --bundle-id "com.example.app" --output json

2. 開啟 App Store Connect

前往 https://appstoreconnect.apple.com/apps 並確認使用者已成功登入。

3. 開啟「新增 App」表單

藍色的「+」按鈕會開啟一個下拉選單,而非直接彈出對話框。

  • 點擊「+」按鈕以展開下拉選單。
  • 點擊選單內的「New App」選項
  • 此時會出現建立 App 的對話框/彈窗。

4. 依序填寫必要欄位

平台(Platform - 複選框)

平台選擇為**複選框(Checkboxes)**而非單選按鈕。勾選目標平台:

  • iOS, macOS, tvOS, visionOS
  • 可同時選擇多個平台。
名稱(Name - 文字輸入框)
  • 標籤:Name
  • 最多 30 個字元。
主要語言(Primary Language - 下拉選單)
  • 標籤:Primary Language
  • 使用 select_option 或同等方法並指定語言標籤(例如:"English (U.S.)")。
Bundle ID(下拉選單)
  • 標籤:Bundle ID
  • 這是一個 <select> 下拉選單。選項會在選擇平台後非同步載入。
  • 請等待下拉選單完成載入(初期會顯示 "Loading...")。
  • 透過比對包含名稱與識別碼的標籤文字進行選擇,例如:
    "My App - com.example.app"
SKU(文字輸入框)
  • 標籤:SKU
使用者存取權限(User Access - 單選按鈕)-- 必填
  • 此欄位為必填。 在選擇其中一個選項前,「Create」按鈕會保持停用狀態。
  • 選項:Limited AccessFull Access
  • 這些是帶有 <span> 覆蓋層的自訂單選按鈕(Radio buttons)。
  • 已知問題: 基於無障礙功能(Accessibility)的點擊可能會被覆蓋層的 <span> 截斷/攔截。
  • 變通方案(Workaround): 先對單選按鈕元素執行 scrollIntoView,然後直接點擊 radio 的 ref。這可繞過覆蓋層攔截問題。

5. 點擊 Create

  • 在填妥所有必要欄位已選擇 User Access 之前,「Create」按鈕會維持停用狀態。
  • 點擊後,處理過程中按鈕文字會變更為「Creating」。
  • 等待頁面跳轉至新 App 的頁面(URL 模式:/apps/<APP_ID>/...)。

6. 透過 API 驗證建立結果

asc apps view --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 pricing availability create \
  --app "APP_ID" \
  --territory "USA,GBR" \
  --available true \
  --available-in-new-territories true

僅在首次初始化上架可用性時使用 asc pricing availability create。若 App 可用性設定已存在,後續變更地區請改用 asc pricing availability edit --app "APP_ID" ...

已知 UI 自動化問題

「New App」是下拉選單,而非直接觸發的動作

第一次點擊會開啟包含「New App」與「New App Bundle」的選單。你必須點擊選單項目,而不只是點擊該按鈕。

User Access 單選按鈕帶有 span 覆蓋層

Apple 的自訂單選按鈕包覆在帶有樣式的 <span> 元素中。直接基於 ref 的點擊可能會因 "click target intercepted" 而失敗。修復方式為:

  1. 將單選按鈕元素捲動至可見區域(scrollIntoView)。
  2. 直接點擊 radio ref(不要透過偏移量或點擊 label)。

Bundle ID 下拉選單為非同步載入

選擇平台後,Bundle ID 下拉選單會顯示 "Loading..." 且處於停用狀態。請等待其變為可用並完成載入後再進行選擇。

browser_fill 可能無法觸發表單驗證

Apple 的 Ember.js 表單使用自訂的 change 事件處理常式。browser_fill(原子化寫入)可能無法觸發驗證。若填寫所有欄位後 Create 按鈕仍處於停用狀態:

  • 在至少一個文字欄位中緩慢地(逐字)重新輸入值。
  • 或點擊欄位、清空內容後再緩慢輸入。

異常處理(Failure Handling)

  • 若無法定位任何欄位或按鈕,請立即停止並請求使用者協助。
  • 擷取螢幕截圖並回報最後已知步驟。
  • 切勿自動重試點擊 Create。
  • 發生失敗時,使用者應檢查瀏覽器中的驗證錯誤訊息(紅框、行內提示)。

備註

  • 此 Skill 是缺乏公開 API 時的變通方案。Apple 官方文件明確指出:「請勿使用此 API 建立新 App;請改為在 App Store Connect 網站上建立新 App。」
  • UI 選擇器(Selectors)可能會在無預告的情況下變更。建議優先使用 role/label/text 選擇器而非 CSS 選擇器。
  • 唯一需要人工操作的步驟應只有登入,其餘所有步驟皆可由 Agent 自動執行。