微信小游戏:從註冊到提審
目標:把用戶的 Unity 遊戲轉成微信小遊戲,辦完資質和兩項備案,並提交版本審核,直到「版本管理 → 審核版本」顯示審核中。
先做:確認 ship-my-game 的第 1~4 步已完成(進度檔案、渠道、體檢、瀏覽器)。沒完成就先讀它。
來源標記
[實測]:在真實的個人主體帳號上做成功過。[官方]:按官方文檔整理,附連結。- 「已在後台核對」:2026-11-02 在真實後台讀到了頁面和字段,但沒有提交過。
實測覆蓋範圍(截至 2026-11-08)
- 已實測:註冊、開通快適配、Unity 6 包在真機上運行、資質審核(已通過)、微信認證(已完成)、小遊戲備案(主管部門已通過)、小程序備案(平台初審已通過)、用開發者工具上傳、體驗版、提交審核(第一次因為第一次打開黑屏被駁回,補丁 B7 修好後重新提審,約 1 小時通過)、單機遊戲在拿到小程序備案號之前發布上線、運營素材(遊戲簡介、推廣文案、通用素材封面、豎版和橫版推廣圖、實機畫面豎版推廣視頻)提交審核。
- 只有
[官方]依據:小程序備案初審之後的環節、命令行上傳、灰度發布、聯網遊戲的發布條件、運營素材的審核結果、通用類推廣視頻、流量主和收款。
本人事項
| 階段 | 事項 |
|---|---|
| P1 | 註冊帳號:填 email 激活碼、實名、管理員微信掃碼。實測約 20 分鐘 [實測] |
| 全程 | 掃碼登錄 mp.weixin.qq.com。會話不到一天就會過期,過期後要重新掃碼 [實測] |
| P2 | 掃碼登錄微信開發者工具;決定是否開啟工具的「服務端口」(屬於安全設置) [實測] |
| P3 | 用手機微信掃預覽碼試玩。預覽碼約 25 分鐘後失效 [實測] |
| P4 | 資質提交時簽字、交材料;微信認證:同意協議、身份驗證、付費 [實測] |
| P5 | 小遊戲備案第 1 步用手機掃碼簽署三份文件;在手機微信裡截備案截圖;點最後的「提交」 [實測] |
| P6 | 小程序備案:身份證兩面照片、精確到門牌的通訊地址、兩個本人手機號(負責人和應急聯繫人)和郵箱、人臉核身、勾選同意條款 [實測];備案省份是廣東或新疆時手寫承諾書;初審通過後 24 小時內完成工信部短信核驗 [官方](備案操作指引、材料示例) |
| P7 | 走命令行上傳時,生成「小程序代碼上傳密鑰」,一般要管理員掃碼(未實測) |
| P8 | 在提審閘門裡說「提交」;審核通過後由用戶決定發布,並用管理員微信掃碼確認 [實測] |
| 上線後 | 開通流量主時同意廣告協議;開通後補財務資料:開戶名稱、身份證號、銀行帳號 [官方](廣告、payouts.md) |
工程要求(總入口第 3 步對照)
引擎版本
- 官方的說法
[官方]: - 本倉庫實測
[實測]:Unity 6000.6 打 12 處補丁後,能在真機上運行,補丁已經寫進腳本。以前的「安卓偶發黑屏」是引擎不等資源包,第一次提審因此被駁回,已由補丁 B7 修好(見 build.md 第 10 節)。 - 怎麼選:
- 新項目:用 2022.3 LTS 或團結引擎。
- 已有的 Unity 6 工程:可以走本倉庫的補丁路線。先把「官方只算預覽」告訴用戶,再寫進進度檔案。
平台模塊:WebGL Build Support。
SDK
- 用
scripts/fetch_wxsdk.sh拉取,版本固定在 v0.1.34。 - 不要用 v0.1.35 預覽版:它把插件換成了 WX-WASM-SDK-V3,現有補丁可能失效。
AppID:必須用正式小遊戲的 AppID,並且開通「快適配」。測試號跑不了 Unity 包 [實測]。
包體大小
- 官方上限:主包 ≤ 4MB,總包 ≤ 30MB
[官方](代碼包)。 - 首包資源放在包內時,Unity 文檔按 20MB 算(UsingLoader),所以按 20MB 控制。
- 實測包體 13~14MB
[實測]。
必須改的代碼(全部 [實測],做法見 build.md 和 capabilities.md):
- 中文字型子集,並設為 fallback。
- 存檔改用
WX.StorageSetStringSync,每次關鍵操作後立即存。 - 安全區和右上角膠囊按鈕的避讓改用
WX.GetWindowInfo、WX.GetMenuButtonBoundingClientRect計算。 - 刪掉外鏈、應用商店評分、Google 服務入口;只在安卓用的代碼包進
#if UNITY_ANDROID。 - 主頁標題顯示已註冊的中文遊戲名,備案截圖需要它。
- 廣告位 ID 為空時,廣告按鈕安全降級,不報錯、不卡流程。
- 在
WX.InitSDK的回調裡再啟動遊戲。
網路類型:先決定「單機」還是「聯網」,小遊戲備案前就要定好。
- 單機遊戲的隱私保護指引只能選「未處理用戶信息」(已在後台核對)。
- 所以單機遊戲不能用好友排行榜、剪貼板、用戶信息這類隱私接口(推斷,依據見 console.md)。
階段
P1 帳號與後台初始化
- 用戶已經有小遊戲帳號就跳到第 2 條。沒有的話,按 onboarding.md 打開註冊頁,帶用戶註冊個人主體、一級類目選「小遊戲」
[實測]。 - 定遊戲名:用純中文,避免觸發軟著材料要求。名字在資質和備案提交後就鎖定,到小程序備案完成前不能再改。選類目時,個人主體避開文化互動、角色、牌類
[官方](類目設置)。規則見 listing.md。 - 開通快適配:「遊戲能力地圖 → 研發能力 → 生產提效包 → 快適配」,點「立即申請」,立即生效
[實測]。 - 在「開發管理 → 開發設置 → 開發者ID」讀出 AppID,寫進進度檔案和
publish/wechat/build.json[實測]。 - 在「帳號設置 → 基本設置」確認運營地區是「中國內地(大陸)地區」(已在後台核對)。
- 裝微信開發者工具的 Stable 版,不要裝 Minigame Build,然後請用戶掃碼登錄
[實測]。
完成標準:
- 進度檔案裡有 AppID。
- 「生產提效包」頁的快適配顯示「已開啟」。
- 基本設置裡名稱和服務類目都已填寫。
- 開發者工具已登錄。
P2 構建與導出
- 裝 WebGL 模塊,再運行
scripts/fetch_wxsdk.sh <工程>,把 SDK 內嵌到Packages/並打補丁[實測]。 - 把
scripts/ShipWeChatBuild.cs複製到<工程>/Assets/Editor/。再按templates/build.json寫<工程>/publish/wechat/build.json[實測]。 - 用
../ship-my-game/scripts/make_cjk_font.py生成中文字型子集,並在 build.json 裡填好cjkFont、latinFonts[實測]。 - 按「工程要求」改代碼
[實測]。 - 導出:執行
../ship-my-game/scripts/unity_build.sh <工程> WebGL ShipWeChatBuild.Export wechat[實測]。 - 在開發者工具裡「項目 → 導入項目」,選
<工程>/Builds/wechat/minigame,點「信任並運行」,在模擬器裡把主流程走一遍[實測]。 - 用
scripts/wx_cold_start.py在模擬器裡復現一次第一次打開:刪緩存、讓資源包晚到 12 秒、編譯、看結論、還原。審核員就是這樣第一次打開的,自己手機上看不出來。步驟見 build.md[實測]。
完成標準:
- 日誌裡有
[Ship] wechat export=SUCCEED。Unity 6 工程還要有[Ship] framework patched,以及[Ship] B7開頭的一行。 - 第一次打開的復現:模擬器先出加載頁再進主頁,
wx_cold_start.py log報OK,最後已經release。 - 模擬器能進主頁,觸摸有響應,控制台沒有紅色報錯(可忽略的日誌除外)。
- 預覽面板顯示的代碼包大小在上限以內。
細節和補丁對照表見 build.md。
P3 真機驗證
- 把預覽面板切到「二維碼預覽」。不要用「自動預覽」或「真機調試」
[實測]。 - 生成預覽碼,截圖發給用戶,或者讓用戶直接掃開發者工具裡的碼。碼大約 25 分鐘後失效
[實測]。 - 和用戶逐項核對 build.md 的真機清單:聲音、中文、觸摸、退出再進存檔還在、劉海和膠囊不擋界面、沒有打不開的入口、主頁顯示中文名。
- 手機上也做一次第一次打開:先在微信「最近使用」裡刪掉這個小遊戲,再掃碼。刪掉能不能清掉資源緩存還沒核實,結論以第 P2 階段模擬器裡的復現為準。黑屏就停下來按 troubleshooting.md 查,不要靠「重新進入小程序」過關:審核員只打開一次,第一次提審就是這樣被駁回的
[實測]。
完成標準:用戶在至少一台手機上確認清單全部通過。有安卓和 iOS 設備時兩種都測。
P4 後台必填項、資質與認證(可以和 P2、P3 並行)
- 適齡提示:「帳號設置 → 基本設置 → 適齡提示 → 去設置」。按 console.md 填好,用戶確認後點「提交審核」(已在後台核對)。
- 用戶隱私保護指引:「服務內容聲明 → 用戶隱私保護指引 → 去完善」。單機遊戲選「未以任何方式處理用戶的任何信息」,用戶確認後點「確認以上內容」(已在後台核對)。
- 資質提交:選「情況二:小遊戲當前及未來均不需要開通虛擬支付」,簽字材料由用戶完成
[實測]。見 filing.md。 - 微信認證:由用戶完成
[實測]。見 onboarding.md。 - 中宣部實名認證:不開通虛擬支付就不用操作,頁面原文寫了「無需開發者操作」(已在後台核對)。
完成標準:
- 適齡提示顯示已提交或已通過。
- 隱私保護指引不再顯示「未更新」。
- 資質顯示審核中或已通過。
- 微信認證已完成,或者已付費、正在審核。
P5 小遊戲備案
- 先確認四件事:
- 名稱已定稿;
- 資質已提交;
- 適齡提示已提交;
- 已有一個預覽版:主頁顯示中文名,關掉了「優化建議」彈窗。
- 打開備案表單,入口見 filing.md。第 1 步由用戶做:選遊戲類型和網路類型,再用手機掃碼簽署三份文件
[實測]。 - 第 2 步的文字由你填。先讀代碼核實,再照
templates/filing-content.md寫場景、玩法、系統[實測]。 - 把截圖清單給用戶,請他在手機微信裡截圖。你按欄目重新命名,用本機中轉法一次只傳一欄,傳完點「保存」,刷新後核對
[實測]。 - 走提審閘門:把要提交的內容列給用戶,用戶說「提交」後,點「下一步 → 信息預覽 → 提交」,或者請用戶自己點
[實測]。
完成標準:「小遊戲備案&發布流程指引」頁的小遊戲備案顯示「平台審核中」。進度檔案「等待中」寫明預計時長:平台初審 1~2 個工作日,主管部門審核 10~20 個工作日。
P6 小程序備案(ICP)
依據:小程序備案、備案操作指引、材料示例。填表到提交已實測,初審之後按官方寫。
- 等小遊戲備案顯示「主管部門已通過」,並且微信認證已完成。實測時,流程指引頁要求這兩項都完成後「開始備案」按鈕才可點
[實測]。 - 打開表單前,先把本人要準備的東西一次講清:身份證兩面照片、精確到門牌的通訊地址、兩個本人手機號和一個郵箱、人臉核身的背景要求;備案省份是廣東或新疆時,還要先手寫承諾書。並說好「提交」要等你核對。實測時用戶填完就直接提交了
[實測]。清單見 filing.md。 - 從流程指引頁的「開始備案」進入,會新開標籤頁「驗證備案類型」。情況一 / 情況二和備案類型都不用選
[實測]。- 用戶:選地區、傳身份證、點「驗證」;填通訊地址、手機號和郵箱;掃碼做人臉核身;簽承諾書(廣東、新疆)。
- 你:起草「備註(必填)」給用戶確認(官方沒寫要求,未確認);讀「材料預覽」頁核對。
- 「材料預覽」頁走提審閘門:把服務內容、備註、上傳的材料列給用戶,地址和證件信息請用戶自己核對;底部的同意條款由用戶勾選;用戶說「提交」後再點
[實測]。 - 平台初審通過後,提醒用戶:收到 12381 發來的短信後,24 小時內到工信部備案網站完成核驗,超時會被退回
[官方]。
完成標準:後台顯示備案號已下發;或者首頁「備案與認證」的小程序備案顯示審核中(實測是「平台審核中」),進度檔案裡寫明提交時間、當前審核環節和預計時長。
P7 上傳開發版本與體驗版 [實測]
- 確認導出的是本次要提交的版本:廣告位 ID 可以先空著,主頁名稱正確,「優化建議」彈窗已關。
- 上傳,兩種方式任選一種:
- 開發者工具的「上傳」,填版本號和項目備註
[實測]; - 命令行
scripts/wx_ci.js upload,需要上傳密鑰和 IP 白名單,見 automation.md(未實測)。
- 開發者工具的「上傳」,填版本號和項目備註
- 打開「版本管理 → 開發版本」,確認看到這個版本,再從「提交審核」旁的下拉箭頭把它「選為體驗版本」,請用戶掃體驗版碼做最後一次核對
[實測]。細節見 review.md。
完成標準:開發版本列表裡有這個版本號,體驗版能在手機上打開。
P8 提審閘門 [實測]
依據:版本審核。
- 核對前置條件:
- 適齡提示和隱私保護指引都已完成;
- 開發版本已上傳;
- 遊戲內顯示的名稱和後台名稱一致。
- 在「版本管理 → 開發版本」點「提交審核」,按 review.md 填表。表單在新標籤頁的跨域 iframe 裡,只能截圖、按坐標操作。
- 走總入口的提審閘門:把渠道、版本號、包體大小、版本說明、隱私與廣告聲明、預計審核時長(官方正常 1 個自然日,實測 1~3 小時出結果)列給用戶,等用戶說「提交」。
- 點表單的「提交」,隱私合規提醒裡點「繼續提交」,然後讀「版本管理」,確認「審核版本」顯示審核中。
完成標準:「審核版本」顯示審核中。進度檔案寫明提交時間、預計時長,以及在哪裡查看結果(「版本管理」頁、站內信)。
等待期與上線後
等待中各項的時長(寫進進度檔案「等待中」)
- 資質:實測已通過;頁面寫約 1 個工作日,官方寫 1~3 個自然日。
- 小遊戲備案:平台初審 1~2 個工作日,主管部門 10~20 個工作日。實測 10-24 提交,10-31 已進入「主管部門審核中」,11-07 查看時已通過。
- 小程序備案:官方寫情況二約 10~30 個工作日;後台還有 3~10(流程指引頁)和 2~22(版本管理頁的「需完成備案」彈窗)兩種寫法,按最長的給預期。平台初審 1~2 個工作日,被駁回後重新審核 7 個工作日。
- 版本審核:官方約 1 個自然日;實測兩次都在當天出結果,約 3 小時(駁回)和約 1 小時(通過)。
等待期間不要做的事
- 不要改名、不要遷移主體:兩項備案都會作廢、要重新來。
- 不要點開發者工具裡的「插件有更新」:插件版本跟著 SDK 走
[實測]。
等待期間可以先做的事:接好廣告代碼(ID 留空),做截圖。
發布:審核通過後,在「版本管理 → 審核版本」點「提交發布」,選全量或分階段發布,再由管理員微信掃碼確認。發布前同樣先問用戶 [實測]。單機遊戲實測不用等小程序備案號;聯網遊戲按官方要先拿到備案號。見 review.md。
上線後
- 運營素材:在「運營素材管理」填遊戲簡介、通用素材封面、豎版和橫版推廣圖、推廣文案和推廣視頻。它們決定搜索結果和發現頁裡怎麼顯示。圖文每項每月只能改 3 次,推廣視頻每週 10 套。先把樣圖、樣片和文案給用戶看,用戶同意再提交。見 listing.md
[實測]。- 首頁頂部提示缺「推廣視頻-實機畫面」時,按 listing.md 的「做推廣視頻」錄真實遊戲畫面:豎屏遊戲 1080×1920、20~30 秒,畫面裡不加字、不加框。
- 流量主:累計獨立訪客超過 100 才能開通(或者滿足遊戲圈條件)。開通當天補財務資料,再建廣告位,把 ID 填進遊戲,再發一版。見 capabilities.md,收款見 payouts.md。
- 啟動失敗:上線後在後台「實時日誌」看失敗那次啟動的日誌,記進進度檔案。
被拒或卡住時:看 review.md 和 troubleshooting.md。