SKILL.md
唯讀
名稱
asc-app-create-ui
描述
透過瀏覽器自動化建立新的 App Store Connect App 紀錄。當缺乏建立 App 的公開 API,且需要由 Agent 操作「新增 App」表單時使用。
asc app create (UI 自動化)
使用此 Skill 透過操作網頁 UI 來建立新的 App Store Connect App。
此為選擇性(opt-in)且僅限本地執行的自動化流程,需要使用者保持已登入狀態。
前置條件
- 已安裝或可使用瀏覽器自動化工具(Playwright、Cursor browser MCP 或同等工具)。
- 使用者已登入 App Store Connect(或可自行完成登入與雙重認證 2FA)。
- Bundle ID 必須已在 Apple Developer 門戶完成註冊。
- 已掌握必要的輸入資訊:
- App 名稱(最多 30 個字元)
- Bundle ID(必須存在且未被其他 App 使用)
- SKU
- 平台(iOS、macOS、tvOS、visionOS)
- 主要語言
- 使用者存取權限(Full Access 完全存取權 或 Limited Access 限制存取權)
安全防護措施
- 切勿匯出或儲存 Cookie。
- 僅能使用可視化(非無頭)瀏覽器工作階段。
- 在點擊「建立」前請暫停並進行最終確認(適用於獨立腳本)。
- 若建立失敗,切勿自動重試「建立」動作。
工作流程
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」表單
「新增 App」按鈕(藍色「+」圖示)會開啟下拉選單,而非直接打開對話框。
- 點擊「新增 App」按鈕以展開下拉選單。
- 點擊下拉選單內的「新增 App」功能表項目。
- 隨即顯示建立 App 的對話框 / 彈出視窗。
4. 依序填寫必要欄位
平台(核取方塊)
平台選項為核取方塊(非單選按鈕)。請點擊目標平台的核取方塊:
- iOS、macOS、tvOS、visionOS
- 可多選。
名稱(文字輸入框)
- 標籤:
Name - 最多 30 個字元。
主要語言(下拉選單 / Combobox)
- 標籤:
Primary Language - 使用
select_option或同等方法選擇對應的語言標籤(例如"English (U.S.)")。
Bundle ID(下拉選單 / Combobox)
- 標籤:
Bundle ID - 此為
<select>下拉選單。選項會在選擇平台後非同步載入。 - 請等待下拉選單完成載入(初始會顯示 "Loading...")。
- 比對同時包含名稱與識別碼的標籤文字進行選擇:
"My App - com.example.app"
SKU(文字輸入框)
- 標籤:
SKU
使用者存取權限(單選按鈕)-- 必填
- 此欄位為必填項目。 在選擇任一選項前,「建立」按鈕會保持停用狀態。
- 選項:
Limited Access或Full Access。 - 這些是帶有
<span>覆蓋層的自訂單選按鈕。 - 已知問題: 基於無障礙功能(Accessibility)的點擊可能會被覆蓋層
<span>攔截。 - 變通方案: 先對單選按鈕元素執行
scrollIntoView,然後直接點擊單選按鈕的參照(ref)。這樣可以繞過覆蓋層攔截。
5. 點擊「建立」
- 填滿所有必要欄位且已選擇「使用者存取權限」後,「建立」按鈕才會啟用。
- 點擊後,處理期間按鈕文字會變更為 "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 自動化問題
「新增 App」為下拉選單,而非直接觸發的動作
第一次點擊會開啟包含「新增 App」與「新增 App 套件」的選單。必須點擊選單內的項目,而非僅點擊按鈕。
使用者存取權限單選按鈕設有 span 覆蓋層
Apple 的自訂單選按鈕外層包覆了具備樣式的 <span> 元素。直接透過 ref 進行點擊可能會失敗並回傳 "click target intercepted"。修復方式:
- 將單選按鈕元素滾動至視窗內(
scrollIntoView)。 - 直接點擊單選按鈕 ref(非透過偏移量或點擊 label)。
Bundle ID 下拉選單為非同步載入
選擇平台後,Bundle ID 下拉選單會顯示 "Loading..." 且處於停用狀態。請確保選單已啟用且內容載入完畢後再進行選擇。
browser_fill 可能無法觸發表單驗證
Apple 的 Ember.js 表單使用了自訂變更處理函式。browser_fill(原子化設定值)可能無法觸發驗證。若填寫所有欄位後「建立」按鈕仍處於停用狀態:
- 在至少一個文字欄位中逐字(逐字元)重新輸入。
- 或者點擊該欄位、清除內容後再慢速輸入。
異常處理
- 若無法定位任何欄位或按鈕,請立即停止並請求使用者協助。
- 擷取螢幕截圖並回報最後已知的步驟。
- 切勿自動重試點擊「建立」。
- 發生失敗時,使用者應檢查瀏覽器中的驗證錯誤訊息(紅色外框、行內提示)。
注意事項
- 此 Skill 為缺乏公開 API 時的變通方案。Apple 官方文件明確指出:「請勿使用此 API 來建立新 App;請改為在 App Store Connect 網站上建立新 App。」
- UI 選擇器可能在無預警的情況下變更。建議優先使用 role/label/text 選擇器,而非 CSS 選擇器。
- 唯一需要人工操作的步驟應只有登入,其餘流程皆可由 Agent 自動化執行。






