ship-wechat-minigame · git:20261102.507a11e · 2026-11-02 · sha256 59056d941bd875b0

ship-wechat-minigame git:20261102.507a11eA

Immutable. This exact content never changes and is served at /api/v1/blob/59056d941bd875b0.

---
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)) |

## 工程要求(总入口第 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))。

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

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