Community程式設計與開發github.com

BaronCyrus/ship-google-play

Google Play 发布:將 Unity 遊戲打包成簽名 AAB,從註冊 Play 開發者帳號、創建應用、填寫應用內容與商品詳情、封閉測試送審、湊滿 12 名測試者連續 14 天,一路推進到申請正式版並提審。

ship-google-play 是什麼?

此技能(SKILL)旨在引導使用者將 Unity 遊戲完整發布到 Google Play 商店,涵蓋從開發者帳號註冊到正式版提審的完整流程。它特別針對個人開發者帳號的封閉測試要求(至少 12 名測試者連續測試 14 天)提供詳細步驟,並清楚列出每個階段的工程要求(如 targetSdk 36、IL2CPP、16 KB 頁對齊、簽名金鑰等)與完成標準。此技能支援在 Claude Code、Cursor 或 Codex 等 AI 代理程式中使用,透過結構化的階段(P1 到 P7)與檢查清單,逐步引導使用者完成帳號設定、AAB 構建、商店資料填寫、測試者招募、平台能力整合(Play 遊戲服務、AdMob、內購)以及最終的正式版送審。它還提供完整的參考文件路徑與常見問題排除指南,確保開發者能順利避開審核被拒的陷阱。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/BaronCyrus/ShipMyGame/tree/HEAD/skills/ship-google-play

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

在你喜歡的 AI 中提問

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

說明文件

Google Play:從註冊開發者帳號推到提審

目標:先把封閉測試版本推到「審核中」(實測當天就能過審),再依個人帳號的測試要求湊滿測試者,最後把正式版推到「審核中」。

先做:確認 ship-my-game 的第 1~4 步已完成(進度檔案、頻道、體檢、瀏覽器),沒完成就先讀它。本頻道的進度寫在進度檔案的 ## google-play 一節。

開工先問使用者這五件事,答案寫進進度檔案 [實測:問診清單]:

  1. 有沒有 Play 開發者帳號?個人還是組織?大概什麼時候註冊的?
  2. 人在哪個國家或地區?這決定商家帳號能不能收款 官方。
  3. 打算怎麼賺錢:廣告、內購、付費下載,還是不賺錢?這會影響公開哪些個人資訊,以及交易者身份怎麼聲明。
  4. 隱私政策放在哪個公開 https 網址?商店上公開的聯絡信箱用哪個?
  5. 有沒有 AdMob 帳號?建議和 Play 開發者帳號用同一個 Google 帳號。

然後告訴使用者三件事:

  1. 測試門檻:2023-11-13 之後註冊的個人帳號,正式上線前要有至少 12 名真人測試者連續 14 天參加封閉測試,然後申請正式版(審核通常 7 天內)官方。所以從封閉測試過審到正式上線,最少要兩週多。

  2. 會公開的資訊:

    • 個人帳號會公開法定全名、國家、開發者信箱;
    • 開始在 Google Play 上創收(付費應用、內購)後,會公開完整地址;
    • 聲明為「交易者」的個人帳號還會公開電話和地址。

    註冊前按 onboarding.md 第 1 節講清楚。

  3. AAB 上傳:AAB 通常幾十 MB,瀏覽器工具單次只能傳 10 MB,所以首個 AAB 要使用者拖進網頁。之後可以走 Developer API(本倉庫未實測),見 automation.md。

本人事項

事項階段
註冊:付 US$25、身份證件、信箱和電話驗證碼、Android 實體設備驗證(用 Play 管理中心行動應用程式掃碼)、交易者身份聲明P1
勾選同意:《開發者分發協議》;建立應用時的「開發者計畫政策」「美國出口法律」聲明;IARC 使用條款;PGS 和 Google Cloud 的條款(點「使用」時);《Google API 服務:使用者資料政策》P1、P3、P6
把 AAB 拖進網頁的上傳框P4,之後每次更新(不走 API 時)
「提交 N 項變更以供審核」:使用者說「提交」後由你點;被權限系統攔下時由使用者點P4、P7
建立 Google 群組時的人機驗證;在 Reddit 等社群發文、互測;用自己的帳號加入測試P5
在真機上確認聲音、PGS 登入和整體手感P2、P6
OAuth 同意畫面的「發布應用」、PGS 的「發布遊戲專案」P6
註冊 AdMob:國家、條款、人機驗證、付款和稅務資料P6
同意把隱私政策、app-ads.txt 發布到使用者的網站;託管需要付費時由使用者決定P2、P6
收款:AdMob 的身份證件、PIN 碼、收款方式、美國稅務資訊;Play 的商家付款資料和銀行帳戶上線後

工程要求

ship-my-game 第 3 步按這張表列差距。細節見 references/build.md。

項要求依據
Unity目標 API 36 需要 6000.0.46f1+ 或 2022.3.62f1+;16 KB 頁需要 6000.0.38f1+ 或 2022.3.56f1+,Burst 1.8.21+。實測用 6000.6.5f1官方;[實測]
模組Android Build Support(含 OpenJDK、SDK、NDK)—
targetSdk36(2026-08-31 起;延期的截止日 2026-11-01 已過)。minSdk 不低於 24,實測 26官方;[實測]
架構和格式IL2CPP、ARM64 + ARMv7、AAB;符號表打進 AAB[實測],由 scripts/ShipAndroidBuild.cs 設定
16 KB 記憶體頁含原生庫(Unity 都含)的包必須 16 KB 對齊,建置後檢查官方
簽名上傳金鑰由 scripts/make_upload_keystore.sh 產生,放在工程外;應用簽名金鑰由 Google 託管[實測]
聲音每個會啟動的場景有且只有一個 AudioListener[實測-失敗] 兩款遊戲都因此無聲上線過
廣告封閉測試期一律用 Google 測試廣告 ID,拿不到廣告時隱藏入口[實測]
內購Unity IAP ≥ 4.14.0 或 5.x(Play 結算庫 ≥ 8)官方
隱私政策公開 https 網頁,Play 後台和遊戲裡都放連結;模板 templates/privacy-policy.en.html官方;[實測]
敏感權限合併後的清單裡不要用不到的照片、影片、通訊錄、位置等權限官方

階段

命令和連結裡的相對路徑(scripts/…、../ship-my-game/…)都以本 skill 目錄為起點。後台路徑用 Play 管理中心中文介面的原文。

P1 帳號(已有就跳到完成標準逐項核對)

  1. 打開 https://play.google.com/console ,讀頁面判斷有沒有開發者帳號、是個人還是組織。
  2. 沒有帳號時:先講 onboarding.md 第 1 節「會公開哪些資訊」,使用者同意後帶他註冊。付費、證件、驗證碼、設備驗證都由使用者做 官方。
  3. 交易者身份:新帳號建立時就要聲明(「管理帳號 → 帳號詳情 → 關於您」),已有帳號最晚 2027-02-01。由使用者如實決定,你講清判斷標準和後果 官方。
  4. 在「首頁」清掉驗證類待辦,並確認「Android 開發者驗證」狀態(新應用建立時會自動登記套件名稱)官方。

完成標準:

  • 首頁沒有待完成的驗證任務。
  • 進度檔案寫明帳號類型、註冊時間(判斷是否適用 12 人 × 14 天)、交易者身份。

P2 工程、上傳金鑰、首個 AAB

  1. 按「工程要求」改工程:把 scripts/ShipAndroidBuild.cs 複製到 Assets/Editor/,檢查每個場景的 AudioListener。
  2. 產生上傳金鑰:bash scripts/make_upload_keystore.sh <套件名稱>,然後提醒使用者備份 ~/.shipmygame/keys/<套件名稱>/ [實測]。
  3. 建置:../ship-my-game/scripts/unity_build.sh <工程目錄> Android ShipAndroidBuild.Aab release -shipVersion 1.0.0 -shipVersionCode 1。
    • [實測]:本腳本在空工程上建置出過除錯 APK;同樣設定的建置腳本在兩款遊戲上產出過簽名 AAB。
  4. 自我檢查:用 bundletool 看清單(targetSdk 36、測試廣告 App ID),確認符號已打進 AAB,檢查 16 KB 對齊。命令見 build.md 第 4 節。
  5. 用 ShipAndroidBuild.Apk 打一個除錯 APK,請使用者裝到手機上,確認有聲音 [實測:模擬器測不出聲音]。
  6. 按 templates/privacy-policy.en.html 產生隱私政策:替換全部 {{佔位符}},刪掉遊戲用不到的 AdMob、PGS、內購段落。使用者同意後發布到公開 https 網址,用 curl 確認回傳 200 [實測]。

完成標準:

  • 有一個簽名 AAB,versionCode 和自查結果都記進了進度檔案。
  • 使用者在真機上確認過有聲音。
  • 隱私政策網址回傳 200。

P3 建立應用、應用內容、商店資料

  1. 「首頁 → 建立應用」:填名稱、套件名稱(先點「檢查可用性」)、預設語言、遊戲、免費或付費;兩項聲明由使用者勾選。逐欄位見 console.md 第 1 節 [實測]。
  2. 資訊中心「完成遊戲設定」的 11 項逐項填完:隱私權政策、登入詳細資訊、廣告、內容分級、目標受眾群體、資料安全、政府應用、金融產品和服務、健康、類別和聯絡資訊、商品詳情。答案見 console.md 第 2 節 [實測]。
  3. 「監控和改進 → 政策和計畫 → 應用內容」:把所有「開始聲明」清零,尤其是「廣告 ID」。它不在 11 項裡,不填送審會被擋 [實測-失敗 → 已修復]。
  4. 「商店發布 → 商店設定」:類別、最多 5 個標籤、聯絡資訊(網站要用 app-ads.txt 所在的網域)[實測]。
  5. 「商店發布 → 商品詳情」:文字、圖示、置頂大圖、截圖、AI 資源聲明。多語言用「使用 AI 導入譯文」,導入後逐語種核對。見 listing.md [實測]。

完成標準:

  • 資訊中心的「完成遊戲設定」整塊消失。
  • 「應用內容」沒有待處理項。
  • 商品詳情狀態是「可以送審」,素材原始檔都在 publish/google-play/。

P4 封閉測試首發(提審閘門)

  1. 「測試和發布 → 測試 → 封閉式測試」(預設軌道「封閉式測試 - Alpha」):

    • 國家/地區選「全選」;
    • 測試人員選 Google 群組(推薦)或郵件列表,二者只能選一種;
    • 填反饋信箱。

    見 console.md 第 5 節 [實測]。

  2. 「建立新的發布版本」:先填版本名稱和多語言版本說明,點「儲存為草稿」。再請使用者把 AAB 拖進上傳框,你輪詢頁面,等出現「1 (1.0.0)」這樣的條目 [實測]。

  3. 「下一步」→ 讀「展開驗證詳情」→「儲存」→「發布概覽」,等快速檢查跑完(最多約 14 分鐘),報問題先修 [實測]。

  4. 按提審閘門把內容列給使用者。使用者說「提交」後點「提交 N 項變更以供審核」→「將變更內容送審」;被權限系統攔下就請使用者點。詳見 review.md 第 1 節 [實測]。

完成標準:

  • 發布概覽顯示「正在審核中的變更」。
  • 進度檔案記下了提交時間和預計時長(實測 10~42 分鐘,官方說通常 7 天內),以及去「發布概覽」看結果。

P5 招募測試者,等滿 14 天(個人帳號;可與 P6 並行)

  1. 過審後到「測試人員」標籤頁,從複製按鈕的 aria-label 裡取兩個加入連結 [實測]。
  2. 用 templates/testers-recruitment.md 寫招募文案。建 Google 群組時最後的人機驗證由使用者過;社群貼文由使用者發 [實測]。見 review.md 第 2 節。
  3. 每天讀資訊中心「申請正式版發布權限」卡片:「目前有 N 名測試人員已持續參與 M 天」[實測:卡片原文]。
  4. 根據反饋發更新:versionCode 加 1,走 P4 的第 2~4 步,或用 automation.md 的 API。改動攢齊一次提交,因為重新送審會取消正在進行的審核 [實測]。
  5. 把「監控和改進 → 評分和評價 → 測試反饋」裡的反饋和對應的修復記進進度檔案,留給 P7 的問卷用 官方。

完成標準:卡片上「至少 12 名測試人員」「至少 14 天」兩項都打勾;進度檔案裡有反饋和修復記錄。

P6 平台能力(與 P5 並行)

  1. Play 遊戲服務:

    • 後台:設定、OAuth 同意畫面、憑證(所有簽名憑證的 SHA-1 都要建)、成就(至少 10 個)、排行榜、測試人員;
    • Unity:scripts/ShipPgsSetup.cs 和 scripts/ShipPlayGames.cs;
    • 「發布應用」和「發布遊戲專案」由使用者點。

    見 capabilities.md 第 1 節 [實測:後台設定]。

  2. AdMob:

    • 建應用和廣告單元,scripts/ShipAds.cs(UMP 同意 → 初始化 → 獎勵、插屏、橫幅);
    • 發布 GDPR 訊息,準備 app-ads.txt;
    • 測試期用測試 ID,正式上線後再關聯商店。

    見 capabilities.md 第 2 節 [實測:後台設定]。

  3. 應用內評價、應用內更新:scripts/ShipPlayReview.cs;內購:Unity IAP。見 capabilities.md 第 3、4 節 [官方]。

  4. 每接一項,都同步更新資料安全申報和隱私政策,跟下一個版本一起送審(P4 第 2~4 步)[實測]。

完成標準:

  • 接入的每個能力都由使用者在真機上、從測試軌道安裝後驗證過。
  • PGS 設定已發布;資料安全申報和隱私政策已經和功能一致。
  • 正式廣告 ID 只記在進度檔案裡,沒有放進測試包。

P7 申請正式版並發布正式版(提審閘門)

  1. 卡片上三項都打勾後,先到模板列出的頁面查測試資料,再按 templates/production-access-answers.md 起草三部分問卷(共 9 題,每道文字題最多 300 個字元),交給使用者逐條確認 [實測]。
  2. 按提審閘門列給使用者:問卷答案、測試人數和天數、預計 7 天內出結果。使用者說「提交」後,在「資訊中心 → 申請正式版發布權限」點「申請發布正式版」,前兩步點「下一步」,最後一步點「應用」。頁面出現「我們已收到您的正式版發布權限申請」才算交上 [實測]。進度檔案記下提交時間,結果看郵件和資訊中心卡片。
  3. 獲批後(郵件通知帳號擁有者),按 review.md 第 6 節準備正式版:
    • 換上正式廣告 ID 和 App ID,versionCode 加 1(可以在等結果時先打好包,這個包只發正式版);
    • 先發布 PGS 設定,至少 2 小時後再上線遊戲;
    • 「測試和發布 → 正式版 →『建立新的發布版本』」。
  4. 再走一次提審閘門,把正式版送審,讀頁面確認進入「審核中」。

完成標準:

  • 發布概覽裡,正式版那一項顯示在「正在審核中的變更」下。
  • 進度檔案記下了提交時間、預計時長和查看位置(發布概覽、郵件)。

等待期與上線後

  • 等封閉測試審核(實測幾十分鐘):去做商店素材、PGS 和 AdMob 的後台設定。
  • 等 14 天:每天看卡片上的人數和天數;按反饋發 1~2 個更新;能力接入放在這段時間做。
  • 等正式版權限審核(約 7 天):打好正式廣告包並核對清單(review.md 第 6 節);準備商店推廣素材。
  • 上線後:在 AdMob 關聯商店並完成 app-ads.txt 驗證(capabilities.md 第 2.7 節);封閉測試的測試人員也會收到正式版和真實廣告,暫停測試軌道擋不住(review.md 第 6 節);在 Android vitals 裡盯崩潰率和 ANR。2027-02 起會考核記憶體,DEX 超過 50 MB 的遊戲還要做程式碼最佳化(官方)。每次更新都加 versionCode,改動攢齊一次送審。
  • 收款:AdMob 餘額滿 10 美元要驗證身份和地址(PIN 碼平信,約 3 週),滿 100 美元後每月 21 日前後付款;賣內購要先建商家付款資料、加銀行帳戶,每月 15 日起付上個月的收入。見 payouts.md。
  • 被拒或被擋:見 review.md 第 4 節和 troubleshooting.md。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相關技能