Community程式設計與開發github.com

ChandraChaan/release-check

在將 Flutter 專案發布至 Google Play 或 App Store 前執行發布預檢。當使用者詢問「我的 App 準備好發布了嗎?」、「發布前檢查」、「發布清單」、「我的 App 為什麼被拒絕?」或執行 flutter build appbundle / ipa 前使用。

release-check 是什麼?

此技能會對 Flutter 專案進行全面的發布預檢,確保其符合 Google Play 和 App Store 的審查要求。它透過執行一個確定性腳本,一次性檢查版本、變更記錄、靜態分析、測試、除錯遺留物、Android 和 iOS 設定等多個類別,並將結果標記為 OK、WARN 或 FAIL。腳本結束後會自動退出,若有任何 FAIL 項目則回傳非零狀態碼。接著,它會引導使用者深入調查每個 FAIL 和 WARN 項目,提供常見問題(如缺少建置編號、預設套件名稱、除錯簽署金鑰、隱私權資訊清單等)的具體修復建議。此外,針對腳本無法自動偵測的事項(如目標 SDK 版本、應用程式圖示、權限、商店素材、帳號刪除機制和審查者登入資訊)提供人工檢查清單。最終產出一個精簡報告,包含「就緒/未就緒」裁決、必須修復與建議修復項目,以及後續指令建議。此技能支援在任何具有終端機存取權的開發環境中執行,特別適合整合 Claude Code 等 AI 編碼助理的開發者。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ChandraChaan/flutter-release-kit/tree/HEAD/skills/release-check

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

發布檢查

您正在協助 Flutter 開發者順利發布一個不會被 Google Play 或 App Store 審查拒絕的版本。請務必具體:指出問題所在的檔案名稱以及確切的修改內容。

步驟 1:執行確定性預檢

在 Flutter 專案根目錄執行:

bash "${CLAUDE_PLUGIN_ROOT}/scripts/preflight.sh" $ARGUMENTS

此腳本會分區(版本、變更記錄、靜態分析、測試、除錯遺留物、Android、iOS)印出 OK / WARN / FAIL 行,並在有任何 FAIL 時以狀態碼 1 結束。如果測試執行,可能需要一分鐘。若使用者明顯處於開發中期且只想快速檢視,可傳遞 --skip-tests。

步驟 2:調查每個 FAIL 和 WARN

對於每個項目,請開啟腳本指名的檔案,並在回報前確認發現結果。常見修復:

發現結果修復方式
版本缺少建置編號將 pubspec.yaml 中的 version: 1.2.0 改為 version: 1.2.0+1。
此版本的標籤已存在執行 bump-version 技能。
com.example 的 applicationId 或 bundle id使用 flutter pub run change_app_package_name:main com.yourco.app 或編輯 android/app/build.gradle(.kts) 以及 ios/Runner.xcodeproj/project.pbxproj 中的三個 PRODUCT_BUNDLE_IDENTIFIER 項目。
發布版本使用除錯金鑰簽署新增 key.properties 載入和 release signingConfig;請參閱 references/android-signing.md。
key.properties 或 *.jks 被 git 追蹤新增至 .gitignore,然後 git rm --cached <檔案>;如果儲存庫是公開的,請輪換金鑰庫密碼。
缺少 PrivacyInfo.xcprivacy建立 ios/Runner/PrivacyInfo.xcprivacy;範本請見 references/privacy-manifest.md。
debuggable=true、明文流量、localhost URL在發布前移除。
分析器錯誤 / 測試失敗修正它們;不要建議跳過。

步驟 3:檢查腳本無法偵測的事項

檢視專案並考量:

  • 目標 SDK:Google Play 要求新應用程式和更新鎖定較新的 Android API 等級(Play 的滾動要求大約是前一年的版本)。檢查 android/app/build.gradle(.kts) 或 Flutter 預設值中的 targetSdk。
  • 應用程式圖示和啟動畫面:預設的 Flutter 圖示在審查中會被拒絕,對使用者而言也會立刻解除安裝。檢查 flutter_launcher_icons / flutter_native_splash 設定或 mipmap 資料夾。
  • 權限:如果 manifest 中有超越 INTERNET 的權限,建議執行 permission-audit 技能。
  • 商店素材:功能圖 1024x500(Play)、每個必要裝置類別的螢幕截圖、隱私權政策 URL(如果應用程式收集任何資料或要求敏感權限則為必要)。
  • 帳號刪除:如果應用程式支援帳號建立,兩個商店都需要應用程式內的帳號刪除路徑。
  • 審查者登入:如果有登入畫面,提醒使用者在審查備註中提供測試帳號。

當使用者詢問為什麼被拒絕或想要更深入的審查時,請閱讀 references/store-rejections.md 以取得常見拒絕原因及其修復方式的完整清單。

步驟 4:回報

回傳一份簡短報告:

  1. 裁決:READY / NOT READY。
  2. 必須修復(FAIL 項目,每個項目附上檔案和確切修改)。
  3. 建議修復(對此應用程式重要的 WARN 項目)。
  4. 後續指令:通常是 flutter build appbundle --release 和 flutter build ipa --release,如果版本已發布過,則在前面加上 bump-version 和 changelog。

保持精簡。除非使用者要求完整輸出,否則不要重複 OK 行。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相關技能