Google Play:從註冊開發者帳號推到提審
目標:先把封閉測試版本推到「審核中」(實測當天就能過審),再依個人帳號的測試要求湊滿測試者,最後把正式版推到「審核中」。
先做:確認 ship-my-game 的第 1~4 步已完成(進度檔案、頻道、體檢、瀏覽器),沒完成就先讀它。本頻道的進度寫在進度檔案的 ## google-play 一節。
開工先問使用者這五件事,答案寫進進度檔案 [實測:問診清單]:
- 有沒有 Play 開發者帳號?個人還是組織?大概什麼時候註冊的?
- 人在哪個國家或地區?這決定商家帳號能不能收款 官方。
- 打算怎麼賺錢:廣告、內購、付費下載,還是不賺錢?這會影響公開哪些個人資訊,以及交易者身份怎麼聲明。
- 隱私政策放在哪個公開 https 網址?商店上公開的聯絡信箱用哪個?
- 有沒有 AdMob 帳號?建議和 Play 開發者帳號用同一個 Google 帳號。
然後告訴使用者三件事:
-
測試門檻:2023-11-13 之後註冊的個人帳號,正式上線前要有至少 12 名真人測試者連續 14 天參加封閉測試,然後申請正式版(審核通常 7 天內)官方。所以從封閉測試過審到正式上線,最少要兩週多。
-
會公開的資訊:
- 個人帳號會公開法定全名、國家、開發者信箱;
- 開始在 Google Play 上創收(付費應用、內購)後,會公開完整地址;
- 聲明為「交易者」的個人帳號還會公開電話和地址。
註冊前按 onboarding.md 第 1 節講清楚。
-
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) | — |
| targetSdk | 36(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 帳號(已有就跳到完成標準逐項核對)
- 打開 https://play.google.com/console ,讀頁面判斷有沒有開發者帳號、是個人還是組織。
- 沒有帳號時:先講 onboarding.md 第 1 節「會公開哪些資訊」,使用者同意後帶他註冊。付費、證件、驗證碼、設備驗證都由使用者做 官方。
- 交易者身份:新帳號建立時就要聲明(「管理帳號 → 帳號詳情 → 關於您」),已有帳號最晚 2027-02-01。由使用者如實決定,你講清判斷標準和後果 官方。
- 在「首頁」清掉驗證類待辦,並確認「Android 開發者驗證」狀態(新應用建立時會自動登記套件名稱)官方。
完成標準:
- 首頁沒有待完成的驗證任務。
- 進度檔案寫明帳號類型、註冊時間(判斷是否適用 12 人 × 14 天)、交易者身份。
P2 工程、上傳金鑰、首個 AAB
- 按「工程要求」改工程:把
scripts/ShipAndroidBuild.cs複製到Assets/Editor/,檢查每個場景的 AudioListener。 - 產生上傳金鑰:
bash scripts/make_upload_keystore.sh <套件名稱>,然後提醒使用者備份~/.shipmygame/keys/<套件名稱>/[實測]。 - 建置:
../ship-my-game/scripts/unity_build.sh <工程目錄> Android ShipAndroidBuild.Aab release -shipVersion 1.0.0 -shipVersionCode 1。[實測]:本腳本在空工程上建置出過除錯 APK;同樣設定的建置腳本在兩款遊戲上產出過簽名 AAB。
- 自我檢查:用 bundletool 看清單(targetSdk 36、測試廣告 App ID),確認符號已打進 AAB,檢查 16 KB 對齊。命令見 build.md 第 4 節。
- 用
ShipAndroidBuild.Apk打一個除錯 APK,請使用者裝到手機上,確認有聲音[實測:模擬器測不出聲音]。 - 按
templates/privacy-policy.en.html產生隱私政策:替換全部{{佔位符}},刪掉遊戲用不到的 AdMob、PGS、內購段落。使用者同意後發布到公開 https 網址,用curl確認回傳 200[實測]。
完成標準:
- 有一個簽名 AAB,versionCode 和自查結果都記進了進度檔案。
- 使用者在真機上確認過有聲音。
- 隱私政策網址回傳 200。
P3 建立應用、應用內容、商店資料
- 「首頁 → 建立應用」:填名稱、套件名稱(先點「檢查可用性」)、預設語言、遊戲、免費或付費;兩項聲明由使用者勾選。逐欄位見 console.md 第 1 節
[實測]。 - 資訊中心「完成遊戲設定」的 11 項逐項填完:隱私權政策、登入詳細資訊、廣告、內容分級、目標受眾群體、資料安全、政府應用、金融產品和服務、健康、類別和聯絡資訊、商品詳情。答案見 console.md 第 2 節
[實測]。 - 「監控和改進 → 政策和計畫 → 應用內容」:把所有「開始聲明」清零,尤其是「廣告 ID」。它不在 11 項裡,不填送審會被擋
[實測-失敗 → 已修復]。 - 「商店發布 → 商店設定」:類別、最多 5 個標籤、聯絡資訊(網站要用 app-ads.txt 所在的網域)
[實測]。 - 「商店發布 → 商品詳情」:文字、圖示、置頂大圖、截圖、AI 資源聲明。多語言用「使用 AI 導入譯文」,導入後逐語種核對。見 listing.md
[實測]。
完成標準:
- 資訊中心的「完成遊戲設定」整塊消失。
- 「應用內容」沒有待處理項。
- 商品詳情狀態是「可以送審」,素材原始檔都在
publish/google-play/。
P4 封閉測試首發(提審閘門)
-
「測試和發布 → 測試 → 封閉式測試」(預設軌道「封閉式測試 - Alpha」):
- 國家/地區選「全選」;
- 測試人員選 Google 群組(推薦)或郵件列表,二者只能選一種;
- 填反饋信箱。
見 console.md 第 5 節
[實測]。 -
「建立新的發布版本」:先填版本名稱和多語言版本說明,點「儲存為草稿」。再請使用者把 AAB 拖進上傳框,你輪詢頁面,等出現「1 (1.0.0)」這樣的條目
[實測]。 -
「下一步」→ 讀「展開驗證詳情」→「儲存」→「發布概覽」,等快速檢查跑完(最多約 14 分鐘),報問題先修
[實測]。 -
按提審閘門把內容列給使用者。使用者說「提交」後點「提交 N 項變更以供審核」→「將變更內容送審」;被權限系統攔下就請使用者點。詳見 review.md 第 1 節
[實測]。
完成標準:
- 發布概覽顯示「正在審核中的變更」。
- 進度檔案記下了提交時間和預計時長(實測 10~42 分鐘,官方說通常 7 天內),以及去「發布概覽」看結果。
P5 招募測試者,等滿 14 天(個人帳號;可與 P6 並行)
- 過審後到「測試人員」標籤頁,從複製按鈕的 aria-label 裡取兩個加入連結
[實測]。 - 用
templates/testers-recruitment.md寫招募文案。建 Google 群組時最後的人機驗證由使用者過;社群貼文由使用者發[實測]。見 review.md 第 2 節。 - 每天讀資訊中心「申請正式版發布權限」卡片:「目前有 N 名測試人員已持續參與 M 天」
[實測:卡片原文]。 - 根據反饋發更新:versionCode 加 1,走 P4 的第 2~4 步,或用 automation.md 的 API。改動攢齊一次提交,因為重新送審會取消正在進行的審核
[實測]。 - 把「監控和改進 → 評分和評價 → 測試反饋」裡的反饋和對應的修復記進進度檔案,留給 P7 的問卷用 官方。
完成標準:卡片上「至少 12 名測試人員」「至少 14 天」兩項都打勾;進度檔案裡有反饋和修復記錄。
P6 平台能力(與 P5 並行)
-
Play 遊戲服務:
- 後台:設定、OAuth 同意畫面、憑證(所有簽名憑證的 SHA-1 都要建)、成就(至少 10 個)、排行榜、測試人員;
- Unity:
scripts/ShipPgsSetup.cs和scripts/ShipPlayGames.cs; - 「發布應用」和「發布遊戲專案」由使用者點。
見 capabilities.md 第 1 節
[實測:後台設定]。 -
AdMob:
- 建應用和廣告單元,
scripts/ShipAds.cs(UMP 同意 → 初始化 → 獎勵、插屏、橫幅); - 發布 GDPR 訊息,準備 app-ads.txt;
- 測試期用測試 ID,正式上線後再關聯商店。
見 capabilities.md 第 2 節
[實測:後台設定]。 - 建應用和廣告單元,
-
應用內評價、應用內更新:
scripts/ShipPlayReview.cs;內購:Unity IAP。見 capabilities.md 第 3、4 節 [官方]。 -
每接一項,都同步更新資料安全申報和隱私政策,跟下一個版本一起送審(P4 第 2~4 步)
[實測]。
完成標準:
- 接入的每個能力都由使用者在真機上、從測試軌道安裝後驗證過。
- PGS 設定已發布;資料安全申報和隱私政策已經和功能一致。
- 正式廣告 ID 只記在進度檔案裡,沒有放進測試包。
P7 申請正式版並發布正式版(提審閘門)
- 卡片上三項都打勾後,先到模板列出的頁面查測試資料,再按
templates/production-access-answers.md起草三部分問卷(共 9 題,每道文字題最多 300 個字元),交給使用者逐條確認[實測]。 - 按提審閘門列給使用者:問卷答案、測試人數和天數、預計 7 天內出結果。使用者說「提交」後,在「資訊中心 → 申請正式版發布權限」點「申請發布正式版」,前兩步點「下一步」,最後一步點「應用」。頁面出現「我們已收到您的正式版發布權限申請」才算交上
[實測]。進度檔案記下提交時間,結果看郵件和資訊中心卡片。 - 獲批後(郵件通知帳號擁有者),按 review.md 第 6 節準備正式版:
- 換上正式廣告 ID 和 App ID,versionCode 加 1(可以在等結果時先打好包,這個包只發正式版);
- 先發布 PGS 設定,至少 2 小時後再上線遊戲;
- 「測試和發布 → 正式版 →『建立新的發布版本』」。
- 再走一次提審閘門,把正式版送審,讀頁面確認進入「審核中」。
完成標準:
- 發布概覽裡,正式版那一項顯示在「正在審核中的變更」下。
- 進度檔案記下了提交時間、預計時長和查看位置(發布概覽、郵件)。
等待期與上線後
- 等封閉測試審核(實測幾十分鐘):去做商店素材、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。