切换语言
切换主题

Cocos Creator 小游戏上线前检查清单:性能、包体、适配、审核全覆盖

第一次提交审核那天,我盯着”审核驳回”的弹窗,脑子嗡的一下。包体超限——主包6.8MB,微信硬性规定4MB。改了三天,从纹理压缩到音频转码,再到引擎模块裁剪,硬是把包体压到3.2MB才过审。

那次经历让我意识到,上线前的检查其实是有迹可循的。不是靠运气,而是有具体的数值标准、明确的检测方法。后来我把踩过的坑整理成一份清单,每次提交前逐项勾选。到现在,这份清单已经迭代了十几次,涵盖性能、包体、适配、审核四大模块15项检查。

这篇文章就把我用过的这份清单分享出来。每项都给出具体数值标准,告诉你用什么工具检测、最常见的坑在哪里。读完你就能拿着这份清单,一项一项自查,大大提高一次过审的概率。

一、性能检查:别让卡顿毁掉体验

性能问题是玩家流失的主要原因之一。你可能觉得游戏在自己手机上跑得很流畅,但别忘了——你的测试设备大概率是新机型,而真实用户可能用的是三年前的老手机。iOS 高端机和低端机的性能差距能达到 3-4 倍,这不是开玩笑。

1. FPS 稳定性检查

检查标准:高端机(iPhone X 及以上)目标 60 FPS,低端机(iPhone 6s/7/8)目标 30 FPS。峰值不低于目标值的 80%,也就是说高端机最低 48 FPS,低端机最低 24 FPS。

检测方法:Cocos Creator 内置 FPS 显示,在 cc.macro 里开启:

// 开发阶段显示 FPS
cc.macro.SHOW_FPS = true;

或者用 Stats.js,更直观一些。微信开发者工具的”性能面板”也能看到实时 FPS 曲线。

量化指标

  • 高端机稳定 55-60 FPS
  • 低端机稳定 28-32 FPS
  • 峰值波动不超过 20%

常见问题:DrawCall 过多、复杂场景切换卡顿、大量粒子同时触发。我之前有个项目,Boss 死亡时爆了 200 个粒子,低端机直接掉到 15 FPS,后来改成 50 个粒子加缓动动画,效果反而更好。

自测小技巧:找一台 iPhone 7,真机跑 10 分钟。如果 FPS 线一直在 30 上下波动没问题,但如果频繁掉到 20 以下,就要排查了。

2. 内存峰值检查

检查标准:iOS 对内存有硬性限制。低端机(iPhone 6s/7/8)上限 1GB,高端机(iPhone X/XR/11)上限 1.4GB。峰值不要超过设备限制的 70%,也就是低端机控制在 700MB 以内,高端机控制在 1GB 以内。

检测方法

  • 微信开发者工具:打开”调试器-Memory”面板,能看到内存曲线
  • Safari 远程调试:真机连接 Mac,Safari 开发者菜单选择对应设备
// 定期打印内存使用情况
const memoryInfo = cc.sys.getMemoryInfo();
console.log('当前内存: ' + memoryInfo.used + 'MB');

量化指标

  • 低端机峰值 ≤700MB
  • 高端机峰值 ≤1000MB
  • 闪退率控制在 2% 以内(某项目优化后从 15% 降到 2%)

常见问题:双份纹理问题(同一资源加载两份)、资源未及时释放、大图集没切分。Cocos 官方文档提到,图集最好控制在 1024x1024 以内,太大的图集在低端机上容易爆内存。

自测小技巧:在低端机上反复进出同一场景 20 次。如果内存曲线持续上升不回落,说明有资源泄漏。

3. DrawCall 数量检查

检查标准:DrawCall 直接影响渲染性能。同一帧里 DrawCall 越多,GPU 压力越大。首屏(进入游戏的第一个画面)不超过 100,游戏过程中不超过 200。

检测方法:Cocos Creator 的”构建发布”面板里有渲染统计选项,勾选后能在运行时看到 DrawCall 数量。

// 查看当前 DrawCall 数量
const stats = cc.game._renderStats;
console.log('DrawCall: ' + stats.drawCalls);

量化指标

  • 首屏 ≤100
  • 游戏内 ≤200
  • 峰值不超过 350(极端场景可以放宽)

常见问题:没合图、动态合图没开启、BMFont 用得太多。我有个项目优化前 DrawCall 高达 350,后来把零散小图打包成大图集,BMFont 换成 TTF,直接压到 120。

优化技巧

  • 静态合图:TexturePacker 打包,减少碎片图
  • 动态合图:Cocos Creator 默认开启,但要确保纹理尺寸小于 2048
  • BMFont:能用 TTF 就用 TTF,BMFont 每个 char 都是一个 DrawCall

4. 首屏加载时间检查

检查标准:首屏加载超过 3 秒,用户流失率上升 7%。这不是我瞎说,是行业数据。微信云测试平台的数据显示,3.5MB 包体的游戏,首屏耗时 4500-9000ms,这个区间流失率明显上升。

检测方法

  • 微信开发者工具:“详情-本地代码”能看到包体大小
  • 微信云测试平台:真机网络环境模拟,获取真实首屏耗时
// 记录首屏加载时间
const startTime = Date.now();
cc.director.loadScene('game', () => {
  const loadTime = Date.now() - startTime;
  console.log('首屏耗时: ' + loadTime + 'ms');
});

量化指标

  • 首屏渲染 ≤3000ms(理想 ≤1500ms)
  • 进度条显示比例 ≥80%(用户看到进度条会更有耐心)

常见问题:首场景放太多资源、初始场景没分包、resources 目录资源全加载。我当时首场景放了 3 个角色、2 个背景、一堆 UI,结果首屏加载 5 秒,改成一张 loading 图 + 分包加载,压到 2 秒。

优化技巧

  • 首场景只放一张背景图 + 进度条
  • 初始场景勾选分包
  • 非必要资源放到远程加载

二、包体检查:4MB 这道坎必须跨过去

微信小游戏的主包硬性限制是 4MB,整包(包括分包)不超过 16MB。这是红线,超了直接驳回,没有任何商量余地。我当时就是踩了这个坑——主包 6.8MB,被拒后改了三天才压到 3.2MB。

5. 主包大小检查

检查标准:主包 ≤3.8MB。为什么要留 200KB 余量?因为构建时可能有动态生成的文件,而且微信的计量方式有时候会有细微偏差。留点空间给自己喘口气。

检测方法:构建完成后,在微信开发者工具点击”详情-本地代码”,能看到精确的包体大小统计。

量化指标

  • 主包 ≤3.8MB(安全线)
  • 主包 ≤4.0MB(红线,必须压)

常见问题

  • resources 目录放太多资源:这个目录里的文件会全部打包进主包
  • 未裁剪引擎模块:Cocos 默认打包所有模块,但你可能只需要其中几个
  • 依赖库太大:引入了 npm 包没检查大小

自测小技巧:构建前先检查 resources 目录,把非必要资源移到其他目录。然后在 Cocos 的”项目设置-模块设置”里,把用不到的模块勾选掉。

// 模块裁剪配置示例(project.json)
{
  "modules": [
    "base",
    "2d",
    "ui",
    "audio"
  ],
  // 不需要的模块不要勾选,比如:
  // "physics" - 不需要物理引擎
  // "tween" - 不需要缓动系统
}

6. 整包大小检查

检查标准:整包(主包 + 分包)不超过 16MB。分包可以远程加载,但下载速度会受网络影响,所以核心内容还是放在主包和首屏分包里。

检测方法:构建输出日志会显示每个分包的大小,加起来就是整包大小。

量化指标

  • 整包 ≤15MB(安全线)
  • 整包 ≤16MB(红线)

分包策略建议

  • 核心包(主包 + 首屏分包)<10MB
  • 功能包(次要玩法)20-50MB
  • 场景包(远程加载)30-100MB

常见问题:分包划分不合理,首屏分包太大,用户下载等太久。我有个项目把所有角色模型都放在首屏分包,结果用户进游戏要等 8 秒下载。

7. 资源压缩率检查

检查标准:纹理、音频、字体三类资源是包体的三大主力。实测数据:纹理占 45%,音频占 25%,字体占 15%。这三类压缩到位,包体能减一半。

检测方法:对比原始文件大小和构建后大小。

量化指标

  • PNG → JPG(无透明通道的图):减少 50-70%
  • WAV → OGG:减少 65-70%
  • 字体提取(fontmin):减少 80-90%

工具推荐

  • TinyPNG:PNG 压缩,网页版,拖进去就行
  • TexturePacker:打包图集 + 压缩,一步到位
  • Audacity:音频转码,WAV 转 OGG 很方便
  • fontmin:字体子集提取,只保留游戏用到的字符

常见问题

  • 背景图用 PNG:其实没透明通道,用 JPG 就行
  • 音频用 WAV:体积大好几倍,换成 OGG
  • 字体没提取:完整字体文件 10MB+,只提取用到的字可能只有 100KB

自测小技巧:用 TinyPNG 压缩一张 PNG,对比前后大小,你会惊讶的。一张 500KB 的背景图,压缩后可能只有 150KB。

8. 分包配置检查

检查标准:分包加载策略要合理,不影响启动体验。首场景必须勾选分包,非必要资源不要放在主包。

检测方法:查看分包加载顺序和首场景依赖关系。

量化指标

  • 首场景分包勾选:是
  • 首场景加载时间:≤3000ms
  • 非必要资源不在主包:检查 resources 目录

常见问题

  • 首场景引用主包外资源:导致要先下载分包才能进场景
  • 分包没按业务逻辑划分:用户进了某个玩法才发现分包没下载完
  • 分包加载时机不对:应该在 loading 画面就开始下载后续分包
// 分包加载示例
cc.assetManager.loadBundle('level-pack', (err, bundle) => {
  if (err) {
    console.error('分包加载失败', err);
    return;
  }
  bundle.loadScene('level-1', (err, scene) => {
    cc.director.runScene(scene);
  });
});

自测小技巧:在 4G 网络环境下测试分包加载速度。如果首屏分包下载超过 5 秒,就要考虑分包策略是否合理。

三、适配检查:别在某个机型上翻车

适配问题是最容易被忽视的。你可能在自己的测试机上跑得挺好,但发布后收到一堆用户投诉:UI 被挡住了、黑边太丑、横屏切换错位。机型适配是个系统性问题,不能只测一台设备。

9. 屏幕适配检查

检查标准:设计分辨率、适配策略、黑边处理。竖屏游戏推荐设计分辨率 720x1280(9:16)或 750x1334,横屏游戏反过来。

检测方法:至少覆盖 3 种屏幕比例的真机测试:

  • 16:9(传统比例,大部分安卓机)
  • 18:9(现代比例,小米华为新机型)
  • 19.5:9(iPhone X 系列,刘海屏)

量化指标

  • 设计分辨率:720x1280 或 750x1334
  • 适配策略:竖屏适配高度,横屏适配宽度
  • 黑边:无黑边,或黑边均匀分布

关键代码

// 竖屏适配高度
cc.view.setDesignResolutionSize(720, 1280, cc.ResolutionPolicy.FIXED_HEIGHT);

// 横屏适配宽度
cc.view.setDesignResolutionSize(1280, 720, cc.ResolutionPolicy.FIXED_WIDTH);

// 获取实际可视区域
const visibleSize = cc.view.getVisibleSize();
console.log('可视区域: ' + visibleSize.width + 'x' + visibleSize.height);

常见问题

  • 适配策略选错:竖屏选了适配宽度,导致上下黑边
  • Widget 组件没用好:节点没有自动跟随屏幕边缘
  • 设计分辨率太宽:部分机型显示不全

自测小技巧:用 Widget 组件把关键 UI 固定到屏幕边缘。比如右上角的金币数字,用 Widget 固定到右上角,不管什么屏幕比例都不会跑偏。

10. 刘海屏/水滴屏检查

检查标准:安全区域处理,关键 UI 不被遮挡。iPhone X 系列的刘海、安卓的水滴屏、挖孔屏,都会占用屏幕顶部区域。

检测方法:真机测试 iPhone X/XR/11 系列,安卓刘海屏机型(华为 Mate 系列、小米高端机)。

量化指标

  • 关键 UI 距顶部 ≥50px
  • 关键 UI 距底部 ≥50px(虚拟 Home 键区域)
  • 安全区检测:使用 SafeArea API

适配技巧

// iOS SafeArea 获取
const safeArea = cc.sys.getSafeArea();
const topPadding = safeArea.top;
const bottomPadding = safeArea.bottom;

// 节点适配
this.topNode.y = -topPadding;  // 向下偏移
this.bottomNode.y = bottomPadding;  // 向上偏移

或者用 Widget 组件直接设置靠边距离,数值设成动态获取的安全区数值。

常见问题

  • 标题被刘海挡住:用户看不到游戏名称
  • 底部按钮被虚拟 Home 键挡住:点击区域重叠
  • 没测试安卓挖孔屏:不同品牌的挖孔位置不一样

自测小技巧:在微信开发者工具模拟器里选择”iPhone X”机型,看 UI 是否被刘海遮挡。然后找一台安卓刘海屏真机再测一遍。

11. 机型兼容性检查

检查标准:覆盖主流机型,低端机性能表现达标。云测试平台能帮你批量测试,不用自己买一堆手机。

检测方法

  • 微信云测试平台:免费,覆盖微信小游戏主流机型
  • Testin 云测:付费,覆盖更全面

覆盖机型建议

  • iPhone 6s/7/8:低端基准机,测试性能下限
  • iPhone X/XR/11:中高端机,测试刘海屏适配
  • 华为/小米/OPPO/vivo 主流安卓机:测试机型兼容性

量化指标

  • 低端机 FPS ≥30
  • 低端机内存 ≤设备限制 70%
  • 闪退率 ≤2%
  • 安装成功率 ≥99%

常见问题

  • 只测 iPhone:安卓机型差异大,低端安卓比 iPhone 6s 还弱
  • 忽略老机型:2024 年还有用户用 iPhone 7
  • 没测 WebGL 支持:部分机型 WebGL 版本低,某些特效不显示

自测小技巧:重点测试 3 类机型:你的开发设备(高端)、iPhone 7(iOS 低端)、某款 2019 年的安卓中端机。这三类能覆盖大部分情况。

12. 横竖屏切换检查

检查标准:横竖屏适配方案、切换流畅度。部分游戏支持横竖屏切换(比如某些益智游戏),切换时 UI 要自动重排。

检测方法:真机旋转测试、强制横屏/竖屏场景测试。

量化指标

  • 切换耗时 ≤500ms
  • UI 重排无错位
  • 切换后场景正常渲染

常见问题

  • 切换时节点位置错乱:Widget 没更新
  • 切换后黑屏:场景重新加载失败
  • 切换卡顿:场景太大重新渲染太慢
// 监听屏幕旋转
cc.view.on('resize', () => {
  const isLandscape = cc.view.getFrameSize().width > cc.view.getFrameSize().height;
  this.updateUILayout(isLandscape);
});

// UI 重排逻辑
updateUILayout(isLandscape: boolean) {
  if (isLandscape) {
    // 横屏布局
    this.scoreLabel.x = -200;
    this.scoreLabel.y = 300;
  } else {
    // 竖屏布局
    this.scoreLabel.x = 0;
    this.scoreLabel.y = 600;
  }
}

自测小技巧:如果你的游戏只支持竖屏或横屏,在项目设置里强制锁定方向,避免用户旋转手机导致画面错乱。

四、审核检查:资质、隐私、内容三道关

审核环节是最让开发者头疼的。技术问题你能自己测,但审核规范你很难提前知道。微信的审核规范写得很详细,但实际执行时还有很多细节需要注意。2026 年开始,微信引入了 AI 辅助审核,更新版本 2-4 小时就能完成,但首版审核还是要 1-2 个工作日。

13. 资质完备性检查

检查标准:软著、ICP 备案、版号(内购必需)。这三项是硬性要求,缺一项直接驳回。

检测方法:对照官方资质清单逐一检查,确保名称、主体完全一致。

量化指标

  • 软著:主体、名称与账号完全一致(一字不差)
  • ICP 备案:审核通过(7-20 工作日)
  • 版号:内购游戏必备,纯广告变现可免

常见问题

  • 软著名称多了个字:比如软著叫”比邻消消乐”,游戏名叫”比邻消消乐小游戏”,直接驳回
  • ICP 备案没等审核通过就提交:审核周期 7-20 天,提前提交会被拒
  • 版号主体不一致:版号是公司 A 的,游戏账号是公司 B 的,不通过

自测小技巧:把软著证书、ICP 备案截图、版号(如果有)放在一起,逐字核对名称和主体。多一字少一字都不行,这点真的要仔细。

14. 隐私政策与未成年人保护检查

检查标准:隐私协议入口、实名认证、防沉迷系统。这三项是未成年人保护的强制要求,2026 年审核会重点检查。

检测方法:模拟未成年用户登录流程,检查防沉迷逻辑是否生效。

量化指标

  • 隐私协议:首页显著位置有入口(弹窗或按钮)
  • 防沉迷:未成年人每日 ≤1 小时,22:00-8:00 禁玩
  • 适龄提示:首页展示健康游戏忠告

常见问题

  • 隐私协议未弹窗授权:用户进游戏直接开玩,没弹隐私协议
  • 防沉迷逻辑缺失:没有实名认证入口,或者认证后没执行防沉迷
  • 健康游戏忠告不显示:审核时会被要求补充

自测小技巧:用一个未成年身份证号(18 岁以下)测试登录流程。看看是否触发防沉迷限制,22:00 后登录是否提示禁玩。

15. 内容合规检查

检查标准:名称规范、广告合规、内容红线。名称要和资质一致,广告不能遮挡核心功能,内容不能触碰红线。

检测方法:对照审核规范自查,逐项检查名称、广告、内容元素。

量化指标

  • 名称:不含英文/品牌词、与资质一致
  • 广告占比:≤50%、不遮挡核心功能
  • 内容:无暴力、色情、赌博、政治敏感元素

常见问题

  • 名称含”软件”字样:比如”XX软件小游戏”,会被驳回
  • 广告遮挡关键按钮:用户想点击”开始游戏”,结果点到广告
  • 诱导分享:“分享给好友解锁关卡”,审核直接驳回
  • 名称含英文:比如”CocosGame”,要改成中文

常见驳回原因 TOP 5

  1. 包体超限(主包 >4MB)
  2. 名称与软著不一致
  3. 隐私协议未弹窗授权
  4. 诱导分享/关注
  5. 广告遮挡核心功能

自测小技巧:对照这份 TOP 5 清单逐项自查。这 5 个原因占了驳回案例的 80%,避开这些基本能一次过审。

快速自查表:上线前 15 项勾选清单

下面这份清单可以直接打印出来,提交审核前逐项勾选:

模块检查项标准是否达标
性能FPS 稳定性高端≥55,低端≥28
性能内存峰值低端≤700MB,高端≤1000MB
性能DrawCall 数量首屏≤100,游戏≤200
性能首屏加载时间≤3000ms
包体主包大小≤3.8MB
包体整包大小≤15MB
包体资源压缩率PNG 减少 50%+,音频 65%+
包体分包配置首场景分包勾选
适配屏幕适配无黑边、无遮挡
适配刘海屏处理UI 距边缘≥50px
适配机型兼容低端机 FPS≥28
适配横竖屏切换≤500ms 无错位(如支持)
审核资质完备软著+ICP 备案+版号(内购)
审核隐私与防沉迷协议入口+防沉迷逻辑
审核内容合规名称/广告/内容规范

每项达标后打勾,15 项全勾完再提交审核。不要心存侥幸,任何一项不达标都可能被驳回,浪费时间重新整改。

总结

上线前的检查不是可有可无的流程,而是直接影响审核通过率的关键环节。性能问题会导致用户流失,包体超限直接驳回,适配问题会收到用户投诉,审核不合规浪费一周时间整改。

这份清单的核心价值在于:每项都有具体数值标准,不用猜;每项都有检测方法,不用蒙;每项都有常见问题,帮你避开别人踩过的坑。

建议你把这份清单打印出来,贴在显示器旁边。每次提交审核前,一项一项勾选。可能觉得麻烦,但比起被驳回改三天,这点时间投入绝对值得。

最后说一句:第一次上线紧张是正常的,但有了这份清单,你就能系统排查、心中有数。祝你的小游戏一次过审,顺利上线。

Cocos Creator 小游戏上线前检查流程

按照性能、包体、适配、审核四大模块逐项检查,确保一次过审

⏱️ 预计耗时: 60 分钟

  1. 1

    步骤1: 性能检查(4项)

    检查FPS稳定性(高端≥55,低端≥28)、内存峰值(低端≤700MB)、DrawCall数量(首屏≤100)、首屏加载时间(≤3000ms)。使用微信开发者工具性能面板、Safari远程调试工具检测。
  2. 2

    步骤2: 包体检查(4项)

    检查主包大小(≤3.8MB)、整包大小(≤15MB)、资源压缩率(PNG减少50%+)、分包配置(首场景分包勾选)。使用TexturePacker、TinyPNG、Audacity优化资源。
  3. 3

    步骤3: 适配检查(4项)

    检查屏幕适配(覆盖3种屏幕比例)、刘海屏处理(UI距边缘≥50px)、机型兼容(低端机FPS≥30)、横竖屏切换(≤500ms无错位)。真机测试iPhone 7、iPhone X、安卓刘海屏机型。
  4. 4

    步骤4: 审核检查(3项)

    检查资质完备(软著+ICP备案+版号)、隐私与防沉迷(协议入口+防沉迷逻辑)、内容合规(名称/广告/内容规范)。对照审核规范自查,避开常见驳回原因TOP5。

常见问题

微信小游戏主包和整包的限制是多少?
主包硬性限制4MB,整包(含分包)不超过16MB。建议主包控制在3.8MB以内,整包控制在15MB以内,留安全余量。
小游戏性能检查的具体标准是什么?
FPS高端机稳定55-60、低端机稳定28-32;内存峰值低端机≤700MB、高端机≤1000MB;DrawCall首屏≤100、游戏内≤200;首屏加载≤3000ms。
审核被驳回的常见原因有哪些?
TOP5驳回原因:包体超限(主包>4MB)、软著名称不一致、隐私协议未弹窗授权、诱导分享/关注、广告遮挡核心功能。这5个原因占驳回案例80%。
如何检测内存泄漏问题?
在低端机(如iPhone 7)上反复进出同一场景20次,观察内存曲线是否持续上升不回落。如果上升不回落,说明有资源泄漏。
小游戏适配需要测试哪些机型?
至少测试iPhone 7(iOS低端)、iPhone X(刘海屏)、华为/小米主流安卓机。覆盖16:9、18:9、19.5:9三种屏幕比例。使用微信云测试平台批量测试。
小游戏上线需要哪些资质?
软著(名称主体必须完全一致)、ICP备案(审核通过7-20工作日)、版号(内购游戏必备,纯广告变现可免)。多一字少一字都会被驳回。

16 分钟阅读 · 发布于: 2026年5月22日 · 修改于: 2026年5月25日

相关文章

BetterLink

想持续收到这个主题的更新?

你可以直接关注作者更新、订阅 RSS,或者继续沿着系列入口往下读,避免下次又回到搜索结果重新找。

关注公众号

评论

使用 GitHub 账号登录后即可评论