App Store Preflight Skills 研究筆記¶
資料來源¶
| 項目 | 連結 |
|---|---|
| GitHub | truongduy2611/app-store-preflight-skills |
| 作者推文 | Duy Nguyen @truongduy2611 |
| 相關專案 — asc CLI | rudrankriyam/App-Store-Connect-CLI |
| 相關專案 — ASC CLI Skills | rudrankriyam/app-store-connect-cli-skills |
| 競品 — Greenlight | RevylAI/greenlight |
| Stars | ~819 |
| 授權 | MIT |
| 建立時間 | 2026-03-19(非常新) |
專案概述¶
App Store Preflight 是一個 Claude Code Skill,在提交 iOS/macOS 應用至 App Store 之前,自動掃描 Xcode 專案、原始碼、metadata 和設定檔,找出可能導致 Apple 審核拒絕的常見問題。
這不是一個獨立的 CLI 工具,而是一組給 AI Agent 讀取的結構化規則文件。透過 Claude Code 的 skill 機制,AI Agent 能載入這些規則、對比你的專案,產出報告並嘗試自動修復。
核心價值¶
- 覆蓋 100+ Apple Review Guidelines
- 按 10 種 App 類型 提供專屬 checklist
- 整合
ascCLI 拉取 App Store Connect metadata - 掃描結果含嚴重度、影響檔案、修復步驟
- 支援自動修復 + 重新驗證
技術架構¶
運作流程¶
Step 1: 識別 App 類型
│
▼
Step 2: asc metadata pull(拉取 App Store metadata)
│
▼
Step 3: 載入 references/rules/ 下的規則
│ 比對 Xcode 專案、原始碼、metadata
▼
Step 4: 產出 Preflight Report
│ ❌ Rejections → ⚠️ Warnings → ✅ Passed
▼
Step 5: Autofix + 重新驗證
規則分類體系¶
所有規則以 Markdown 結構化存放在 references/rules/:
| 分類 | 規則數 | 涵蓋內容 |
|---|---|---|
| Metadata | 5 | 競品品牌詞、Apple 商標濫用、中國區禁用 AI 詞彙、不正確 metadata、訂閱 metadata |
| Subscription | 2 | 缺少 ToS/PP 連結、誤導性定價 |
| Privacy | 2 | 非必要個資收集、缺少 PrivacyInfo.xcprivacy |
| Design | 2 | Sign in with Apple 後重複要求姓名/email、最低功能要求(WebView wrapper 等) |
| Entitlements | 1 | 未使用的 entitlement |
每條規則都包含:What to Check → How to Detect → Resolution → Example Rejection
App 類型 Checklist¶
| Checklist | 適用 App 類型 |
|---|---|
all_apps.md |
所有提交(通用規則) |
subscription_iap.md |
訂閱 / 應用內購買 |
social_ugc.md |
社群 / UGC 內容 |
kids.md |
兒童類別 |
health_fitness.md |
健康、健身、醫療 |
games.md |
遊戲 |
macos.md |
macOS / Mac App Store |
ai_apps.md |
AI / 生成式 AI |
crypto_finance.md |
加密貨幣、金融交易 |
vpn.md |
VPN 與網路 |
安裝與使用¶
安裝¶
前置需求¶
- asc CLI:
brew install asc(App Store Connect CLI) - asc 認證:
asc auth login或設定ASC_KEY_ID/ASC_ISSUER_ID/ASC_PRIVATE_KEY_PATH - jq(選用):部分 JSON 檢查範例使用
使用方式¶
安裝 skill 後,在 Claude Code 中直接描述需求即可:
- 「幫我檢查這個 iOS 專案是否有 App Store 審核風險」
- 「我的 App 有訂閱功能,幫我做 preflight 檢查」
- 「上次被 Apple 拒絕了,幫我掃描哪裡有問題」
AI Agent 會自動載入對應的 checklist 和規則檔案進行比對。
重要注意事項(Gotchas)¶
作者在 SKILL.md 中特別標注的陷阱:
| 陷阱 | 說明 |
|---|---|
| 中國區 AI 詞彙 | 禁用詞(ChatGPT、Gemini 等)會檢查所有 locale,不只 zh-Hans |
| Privacy Manifest | 即使你的 App 不直接呼叫 Required Reason API,第三方 SDK(Firebase、Amplitude 等)使用 UserDefaults / NSFileManager 也會觸發此要求 |
| 訂閱 ToS/PP | Apple 要求在 App Store 描述和應用內購買畫面都有 ToS/PP 連結,缺任一個都會被拒 |
| macOS Entitlements | Apple 會要求你解釋每個 temporary exception entitlement,不用的就移除 |
| asc 認證 | asc metadata pull 需要認證,先跑 asc auth doctor 確認狀態 |
與 Greenlight 的比較¶
搜尋中發現了競品 Greenlight,兩者定位類似但方法不同:
| 面向 | App Store Preflight | Greenlight |
|---|---|---|
| 形式 | Claude Code Skill(AI Agent 讀取規則) | 獨立 CLI 工具(Go 語言) |
| 掃描方式 | AI Agent 理解規則 + 比對專案 | 程式化模式匹配(30+ patterns) |
| 規則格式 | 結構化 Markdown(人+AI 可讀) | 硬編碼在程式中 |
| 可擴展性 | 新增 .md 檔案即可加規則 |
需修改原始碼 |
| Binary 掃描 | 不支援 | 支援 IPA 檔案檢查 |
| 語言支援 | 主要 Swift / Xcode | Swift、ObjC、React Native、Expo |
| CI/CD | 透過 Claude Code | 原生支援 GitHub Actions |
| 輸出格式 | Markdown Report | Terminal、JSON、JUnit |
研究價值與啟示¶
關鍵洞察¶
-
「規則即文件」是 AI Agent Skill 的優雅範式:整個專案幾乎沒有程式碼,全是結構化 Markdown。AI Agent 讀取規則文件後自行判斷如何檢查,這比硬編碼 pattern matching 更靈活,也更容易由社群貢獻新規則
-
Claude Code Skill 的真實落地案例:這是一個非常實用的 skill 範例——把領域知識(Apple 審核規則)結構化後餵給 AI Agent,讓 Agent 成為領域專家。模式可遷移到任何有明確規則的審核/合規場景
-
領域知識的半衰期問題:Apple Review Guidelines 會隨版本更新,這些規則文件需要持續維護。作者選擇 Markdown 格式降低了維護門檻,但仍需要有人追蹤 Apple 的政策變化
-
Autofix 的邊界很清楚:能自動修的(刪競品詞、補 URL template)就自動修,不能自動修的(截圖、UI 重設計)就給清楚指引。這種分層策略比「全自動」或「全手動」都務實
-
ascCLI 生態圈的協作模式:Preflight Skill 建立在ascCLI 和 ASC CLI Skills 之上,三個專案形成工具鏈。這種「小工具組合」的生態模式值得學習
與其他專案的關聯¶
| 對比專案 | 關聯 |
|---|---|
| 本站 Claude Skills Guide | Preflight 是 Claude Code Skill 的優秀實作範例,展示了「規則即文件」的 skill 設計模式 |
| 本站 Learn Claude Code | 可作為學習 Claude Code skill 開發的實戰案例 |
| Greenlight | 同領域競品,但採用傳統程式化方法而非 AI Agent 方法 |
| asc CLI | Preflight 的上游依賴,提供 App Store Connect metadata 存取 |