---
name: ship-wechat-minigame
description: 微信小游戏渠道：把 Unity 游戏转成微信小游戏，从注册小游戏账号推进到版本提审，主线是个人主体、纯广告变现。用户要发布、上架、提审到微信小游戏时使用；要接入微信小游戏的流量主广告、分享、排行榜、游戏圈、存档、安全区和胶囊按钮时使用；问流量主的钱怎么结算、财务资料怎么填，或遇到微信小游戏黑屏、中文显示成方块、备案或认证卡住、审核被拒时也使用。
---

# 微信小游戏：从注册到提审

目标：把用户的 Unity 游戏转成微信小游戏，办完资质和两项备案，并提交版本审核，直到「版本管理 → 审核版本」显示审核中。

**先做**：确认 [ship-my-game](../ship-my-game/SKILL.md) 的第 1～4 步已完成（进度档案、渠道、体检、浏览器）。没完成就先读它。

**来源标记**
- `[实测]`：在真实的个人主体账号上做成功过。
- `[官方]`：按官方文档整理，附链接。
- 「已在后台核对」：2026-11-02 在真实后台读到了页面和字段，但没有提交过。

**实测覆盖范围（截至 2026-11-02）**
- 已实测：注册、开通快适配、Unity 6 包在真机上运行、资质审核（已通过）、微信认证（已完成）、小游戏备案（已提交，正在主管部门审核）。
- 只有 `[官方]` 依据：小程序备案、上传代码、提交审核、流量主和收款。

## 本人事项

| 阶段 | 事项 |
|---|---|
| P1 | 注册账号：填邮箱激活码、实名、管理员微信扫码。实测约 20 分钟 `[实测]` |
| 全程 | 扫码登录 mp.weixin.qq.com。会话不到一天就会过期，过期后要重新扫码 `[实测]` |
| P2 | 扫码登录微信开发者工具；决定是否开启工具的「服务端口」（属于安全设置） `[实测]` |
| P3 | 用手机微信扫预览码试玩。预览码约 25 分钟后失效 `[实测]` |
| P4 | 资质提交时签字、交材料；微信认证：同意协议、身份验证、付费 `[实测]` |
| P5 | 小游戏备案第 1 步用手机扫码签署三份文件；在手机微信里截备案截图；点最后的「提交」 `[实测]` |
| P6 | 小程序备案：证件照片、人脸核身、两个本人手机号（负责人和应急联系人）、24 小时内完成工信部短信核验 `[官方]`（[备案操作指引](https://developers.weixin.qq.com/minigame/product/record/guidelines.html)） |
| P7 | 走命令行上传时，生成「小程序代码上传密钥」，一般要管理员扫码（未实测） |
| P8 | 在提审闸门里说「提交」；审核通过后点「发布」同样要用户确认 |
| 上线后 | 开通流量主时同意广告协议；开通后补财务资料：开户名称、身份证号、银行账号 `[官方]`（[广告](https://developers.weixin.qq.com/minigame/dev/guide/open-ability/ad/ad.html)、[payouts.md](references/payouts.md)） |

## 工程要求（总入口第 3 步对照）

**引擎版本**
- 官方的说法 `[官方]`：
  - 支持 Unity 2018～2022 和团结引擎，推荐 2022.3 或团结引擎（[推荐引擎版本](https://developers.weixin.qq.com/minigame/dev/guide/game-engine/unity-webgl-transform/Design/UnityVersion.html)）。
  - SDK 更新日志写的是「支持Unity6，预览版本不建议上线使用」（[CHANGELOG](https://github.com/wechat-miniprogram/minigame-tuanjie-transform-sdk/blob/main/CHANGELOG.md)）。
- 本仓库实测 `[实测]`：Unity 6000.6 打 11 处补丁后，能在真机上运行，补丁已经写进脚本；已知问题是安卓偶发黑屏。
- 怎么选：
  - 新项目：用 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 `[官方]`（[代码包](https://developers.weixin.qq.com/minigame/dev/guide/base-ability/code-package.html)）。
- 首包资源放在包内时，Unity 文档按 20MB 算（[UsingLoader](https://developers.weixin.qq.com/minigame/dev/guide/game-engine/unity-webgl-transform/Design/UsingLoader.html)），所以按 20MB 控制。
- 实测包体 13～14MB `[实测]`。

**必须改的代码**（全部 `[实测]`，做法见 [build.md](references/build.md) 和 [capabilities.md](references/capabilities.md)）：
- 中文字体子集，并设为 fallback。
- 存档改用 `WX.StorageSetStringSync`，每次关键操作后立即存。
- 安全区和右上角胶囊按钮的避让改用 `WX.GetWindowInfo`、`WX.GetMenuButtonBoundingClientRect` 计算。
- 删掉外链、应用商店评分、Google 服务入口；只在安卓用的代码包进 `#if UNITY_ANDROID`。
- 主页标题显示已注册的中文游戏名，备案截图需要它。
- 广告位 ID 为空时，广告按钮安全降级，不报错、不卡流程。
- 在 `WX.InitSDK` 的回调里再启动游戏。

**网络类型**：先决定「单机」还是「联网」，小游戏备案前就要定好。
- 单机游戏的隐私保护指引只能选「未处理用户信息」（已在后台核对）。
- 所以单机游戏不能用好友排行榜、剪贴板、用户信息这类隐私接口（推断，依据见 [console.md](references/console.md)）。

## 阶段

### P1 账号与后台初始化

1. 用户已经有小游戏账号就跳到第 2 条。没有的话，按 [onboarding.md](references/onboarding.md) 打开注册页，带用户注册个人主体、一级类目选「小游戏」 `[实测]`。
2. 定游戏名：用纯中文，避免触发软著材料要求。名字在资质和备案提交后就锁定，到小程序备案完成前不能再改。选类目时，个人主体避开文化互动、角色、牌类 `[官方]`（[类目设置](https://developers.weixin.qq.com/minigame/introduction/guide/type.html)）。规则见 [listing.md](references/listing.md)。
3. 开通快适配：「游戏能力地图 → 研发能力 → 生产提效包 → 快适配」，点「立即申请」，立即生效 `[实测]`。
4. 在「开发管理 → 开发设置 → 开发者ID」读出 AppID，写进进度档案和 `publish/wechat/build.json` `[实测]`。
5. 在「账号设置 → 基本设置」确认运营地区是「中国内地（大陆）地区」（已在后台核对）。
6. 装微信开发者工具的 Stable 版，不要装 Minigame Build，然后请用户扫码登录 `[实测]`。

完成标准：
- 进度档案里有 AppID。
- 「生产提效包」页的快适配显示「已开启」。
- 基本设置里名称和服务类目都已填写。
- 开发者工具已登录。

### P2 构建与导出

1. 装 WebGL 模块，再运行 `scripts/fetch_wxsdk.sh <工程>`，把 SDK 内嵌到 `Packages/` 并打补丁 `[实测]`。
2. 把 `scripts/ShipWeChatBuild.cs` 复制到 `<工程>/Assets/Editor/`。再按 `templates/build.json` 写 `<工程>/publish/wechat/build.json` `[实测]`。
3. 用 `../ship-my-game/scripts/make_cjk_font.py` 生成中文字体子集，并在 build.json 里填好 `cjkFont`、`latinFonts` `[实测]`。
4. 按「工程要求」改代码 `[实测]`。
5. 导出：运行 `../ship-my-game/scripts/unity_build.sh <工程> WebGL ShipWeChatBuild.Export wechat` `[实测]`。
6. 在开发者工具里「项目 → 导入项目」，选 `<工程>/Builds/wechat/minigame`，点「信任并运行」，在模拟器里把主流程走一遍 `[实测]`。

完成标准：
- 日志里有 `[Ship] wechat export=SUCCEED`。Unity 6 工程还要有 `[Ship] framework patched`。
- 模拟器能进主页，触摸有响应，控制台没有红色报错（[可忽略的日志](references/troubleshooting.md)除外）。
- 预览面板显示的代码包大小在上限以内。

细节和补丁对照表见 [build.md](references/build.md)。

### P3 真机验证

1. 把预览面板切到「二维码预览」。不要用「自动预览」或「真机调试」 `[实测]`。
2. 生成预览码，截图发给用户，或者让用户直接扫开发者工具里的码。码大约 25 分钟后失效 `[实测]`。
3. 和用户逐项核对 [build.md 的真机清单](references/build.md#真机验证清单)：声音、中文、触摸、退出再进存档还在、刘海和胶囊不挡界面、没有打不开的入口、主页显示中文名。
4. 黑屏时点右上角「···」→「重新进入小程序」。把黑屏的次数记进进度档案 `[实测]`。

完成标准：用户在至少一台手机上确认清单全部通过。有安卓和 iOS 设备时两种都测。

### P4 后台必填项、资质与认证（可以和 P2、P3 并行）

1. 适龄提示：「账号设置 → 基本设置 → 适龄提示 → 去设置」。按 [console.md](references/console.md#适龄提示) 填好，用户确认后点「提交审核」（已在后台核对）。
2. 用户隐私保护指引：「服务内容声明 → 用户隐私保护指引 → 去完善」。单机游戏选「未以任何方式处理用户的任何信息」，用户确认后点「确认以上内容」（已在后台核对）。
3. 资质提交：选「情况二：小游戏当前及未来均不需要开通虚拟支付」，签字材料由用户完成 `[实测]`。见 [filing.md](references/filing.md#资质提交)。
4. 微信认证：由用户完成 `[实测]`。见 [onboarding.md](references/onboarding.md#微信认证)。
5. 中宣部实名认证：不开通虚拟支付就不用操作，页面原文写了「无需开发者操作」（已在后台核对）。

完成标准：
- 适龄提示显示已提交或已通过。
- 隐私保护指引不再显示「未更新」。
- 资质显示审核中或已通过。
- 微信认证已完成，或者已付费、正在审核。

### P5 小游戏备案

1. 先确认四件事：
   - 名称已定稿；
   - 资质已提交；
   - 适龄提示已提交；
   - 已有一个预览版：主页显示中文名，关掉了「优化建议」弹窗。
2. 打开备案表单，入口见 [filing.md](references/filing.md#小游戏备案)。第 1 步由用户做：选游戏类型和网络类型，再用手机扫码签署三份文件 `[实测]`。
3. 第 2 步的文字由你填。先读代码核实，再照 `templates/filing-content.md` 写场景、玩法、系统 `[实测]`。
4. 把截图清单给用户，请他在手机微信里截图。你按栏目重命名，用本机中转法一次只传一栏，传完点「保存」，刷新后核对 `[实测]`。
5. 走提审闸门：把要提交的内容列给用户，用户说「提交」后，点「下一步 → 信息预览 → 提交」，或者请用户自己点 `[实测]`。

完成标准：「小游戏备案&发布流程指引」页的小游戏备案显示「平台审核中」。进度档案「等待中」写明预计时长：平台初审 1～2 个工作日，主管部门审核 10～20 个工作日。

### P6 小程序备案（ICP）`[官方]`

依据：[小程序备案](https://developers.weixin.qq.com/minigame/introduction/guide/xcxba.html)、[备案操作指引](https://developers.weixin.qq.com/minigame/product/record/guidelines.html)。

1. 等小游戏备案显示「主管部门已通过」，并且微信认证已完成。实测时，流程指引页要求这两项都完成后「开始备案」按钮才可点。
2. 从「账号设置 → 基本设置 → 小程序备案 → 去完善」进入，或者从首页的流程指引进入。备案类型选新增备案。
3. 不敏感的字段由你预填：通信地址等。证件、人脸核身、两个手机号由用户本人完成，见 [filing.md](references/filing.md#小程序备案icp)。
4. 平台初审通过后，提醒用户：收到 12381 发来的短信后，24 小时内到工信部备案网站完成核验，超时会被驳回。

完成标准：后台显示备案号已下发；或者进度档案里写明当前审核环节和预计时长。

### P7 上传开发版本与体验版 `[官方]`

依据：[协同工作和发布](https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/release.html)、[miniprogram-ci](https://developers.weixin.qq.com/miniprogram/dev/devtools/ci.html)。

1. 确认导出的是本次要提交的版本：广告位 ID 可以先空着，主页名称正确，「优化建议」弹窗已关。
2. 上传，两种方式任选一种：
   - 开发者工具的「上传」，填版本号和项目备注；
   - 命令行 `scripts/wx_ci.js upload`，需要上传密钥和 IP 白名单，见 [automation.md](references/automation.md)。
3. 打开「版本管理 → 开发版本」，确认看到这个版本，再把它「选为体验版」，请用户扫体验版码做最后一次核对。

完成标准：开发版本列表里有这个版本号，体验版能在手机上打开。

### P8 提审闸门 `[官方]`

依据：[版本审核](https://developers.weixin.qq.com/minigame/introduction/guide/bbsh.html)。

1. 核对前置条件：
   - 适龄提示和隐私保护指引都已完成；
   - 开发版本已上传；
   - 游戏内显示的名称和后台名称一致。
2. 在「版本管理 → 开发版本」点「提交审核」，按 [review.md](references/review.md) 填表。表单要先有开发版本才能看到，字段以页面为准。
3. 走总入口的提审闸门：把渠道、版本号、包体大小、版本说明、隐私与广告声明、预计审核时长（正常 1 个自然日）列给用户，等用户说「提交」。
4. 点「提交审核」，然后读页面，确认「审核版本」显示审核中。

完成标准：「审核版本」显示审核中。进度档案写明提交时间、预计时长，以及在哪里查看结果（「版本管理」页、站内信）。

## 等待期与上线后

**等待中各项的时长**（写进进度档案「等待中」）
- 资质：实测已通过；页面写约 1 个工作日，官方写 1～3 个自然日。
- 小游戏备案：平台初审 1～2 个工作日，主管部门 10～20 个工作日。实测 10-24 提交，10-31 已进入「主管部门审核中」。
- 小程序备案：情况二约 10～30 个工作日。
- 版本审核：约 1 个自然日。

**等待期间不要做的事**
- 不要改名、不要迁移主体：两项备案都会作废、要重新来。
- 不要点开发者工具里的「插件有更新」：插件版本跟着 SDK 走 `[实测]`。

**等待期间可以先做的事**：接好广告代码（ID 留空），做截图。

**发布**：审核通过并且拿到备案号后，在「版本管理 → 审核版本」点「发布」，选全量或分阶段发布。发布前同样先问用户 `[官方]`（[协同工作和发布](https://developers.weixin.qq.com/miniprogram/dev/framework/quickstart/release.html)）。

**上线后**
- 流量主：累计独立访客超过 100 才能开通（或者满足游戏圈条件）。开通当天补财务资料，再建广告位，把 ID 填进游戏，再发一版。见 [capabilities.md](references/capabilities.md#广告流量主)，收款见 [payouts.md](references/payouts.md)。
- 安卓黑屏：上线后在后台「实时日志」看失败启动的日志，记进进度档案。

**被拒或卡住时**：看 [review.md](references/review.md#被拒或卡住) 和 [troubleshooting.md](references/troubleshooting.md)。
