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 Access或Full 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" 而失敗。修復方式為:
- 將單選按鈕元素捲動至可見區域(
scrollIntoView)。 - 直接點擊 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 自動執行。






