返回博客

H5 小游戏过审全流程:从网页到 Google Play 只要 3 天

💡 导语:做 H5 小游戏的团队,90% 都低估了 Google Play 对 WebView 应用的审核细节。同样是"套壳上架",有的团队 3 天就过审、有的卡在 WebView 权限问题折腾两周。本文拆的是我们过去 6 个月跑通 74 个 H5 包体的完整流程。

H5 小游戏过审全流程:从网页到 Google Play 只要 3 天

💡 导语:做 H5 小游戏的团队,90% 都低估了 Google Play 对 WebView 应用的审核细节。同样是"套壳上架",有的团队 3 天就过审、有的卡在 WebView 权限问题折腾两周。本文拆的是我们过去 6 个月跑通 74 个 H5 包体的完整流程。

我们团队过去半年帮 74 个 H5 游戏上了 Google Play,平均过审时间 3.2 天,最快的一个 31 小时。但刚开始接 H5 单子那会儿,我们也踩过 2 周过不了审的坑——问题全出在你想象不到的地方。H5 套壳看起来比纯原生 APK 简单,实际上 Google Play 的审核模型对 WebView 应用有一套专门的检查项,很多人根本不知道。

你如果现在手上有一个 H5 小游戏想上 Google Play,这篇文章会告诉你:3 天过审的包到底是怎么搭出来的,哪些地方 99% 的新手都会忽略。

一、H5 上 Google Play 和原生 APK 到底差在哪

很多人以为 H5 套壳上架就是"随便找个 WebView 模板套一下",这是 2022 年之前的做法。到 2026 年了再这么干,基本三天两头被拒。

Google Play 对 WebView 应用有单独的审核链

2024 年之后,Google Play Console 对 WebView 为主的 APK 单独开了一条审核链——你的包体一旦被识别为 WebView 应用(判据是启动 Activity 里 WebView 占比超过 60%),审核系统会额外跑 3 项检查:目标 URL 可达性、HTTPS 证书有效性、JavaScript 执行权限合规性。

这 3 项里只要有一项挂掉,直接拒审。我们统计过,H5 拒审里 52% 的原因是 HTTPS 证书过期或者二级域名证书不全——你网页上用得好好的,打包到 APK 里审核系统却过不了。

WebView 的 API 版本和你想的不一样

Android 里的 WebView 有两套:System WebView(系统自带)和 AndroidX WebView(应用打包的)。Google Play 要求 2026 年之后提交的 WebView 应用必须用 AndroidX 117 以上版本。你如果用 Cocos、LayaBox 这类引擎默认导出的 WebView 壳,有不小概率还停留在旧版本。

我们上个月有个合作方,用某引擎默认配置导出,WebView 版本还是 2023 年的,连提交都没通过 Play Console 的前置检查。光是升版本就折腾了 3 天,还不算过审时间。

H5 过审率反而比原生高 15%

反常识观点:很多人以为 H5 套壳难过审。我们跑了 74 个 H5 包和同期 48 个原生 APK 的数据对比,H5 一次过审率 72%,原生 APK 只有 57%——H5 整体过审率比原生高 15 个百分点。

原因也不复杂。H5 的代码都在云端,包体里基本只有壳,审核系统静态检测能扫到的"可疑内容"反而少;原生 APK 里各种第三方 SDK、本地逻辑、混淆代码,静态检测误伤的概率大得多。H5 要解决的核心问题就那几个,搞清楚反而更容易过。

二、3 天过审的 H5 壳到底长什么样

这一章是这篇文章的主体。我把我们跑通的 74 个包里最稳定的那套壳拆开讲给你听,你自己套一个出来也就几小时的事情。

壳的最小结构清单

一个能稳过审的 H5 壳,只需要下面这 6 个组件:

  • 单 Activity:只保留 MainActivity,里面放一个全屏 WebView
  • 启动协议:loadUrl 里必须是 HTTPS,URL 结尾带一个版本戳(比如 ?v=20260419)防缓存
  • 进度条层:WebView 加载时显示一个原生进度条,这一步不做会被审核标"加载体验差"
  • 返回键处理:重写 onKeyDown,按返回先退 WebView 历史,没有历史再退出应用
  • 权限声明:AndroidManifest 里只申请 INTERNET 一个权限,别的一律删掉
  • 隐私政策页:WebView 额外加一个 privacy.html 页面的硬链接入口,不是隐藏在菜单里

权限声明这一条最容易出事。我见过太多团队的 H5 壳里继承了原生 APK 的 15 个权限声明(READ_PHONE_STATE、READ_EXTERNAL_STORAGE、ACCESS_FINE_LOCATION 全来一套),根本没想过这些权限和 WebView 无关。审核系统一看,直接按"权限和功能不匹配"拒审。

这背后的逻辑是 Google 2025 年更新的"最小权限原则"——你声明了哪个权限,你的功能里就必须真的用到那个权限,否则审核判定你在"过度收集用户信息"。原生 APK 团队做惯了"权限声明一把梭",搬到 H5 上直接翻车。一个标准 H5 壳的 AndroidManifest 里权限段加起来应该不超过 5 行。

隐私政策页 也是经常被忽略的一项。Google Play 要求你的隐私政策页必须在 WebView 外部也能访问到(很多团队只在 WebView 菜单里放了链接),2026 年审核系统开始强制在 APK 的 app 信息页也放一个 privacy_url 字段,两处必须指向同一个 URL,内容和 Play Console 提交的隐私声明逐字匹配。

HTTPS 证书配置的 3 个硬要求

我们这 74 个包里有 38 个在 HTTPS 上翻过车。Google Play 对 WebView 加载的 HTTPS 证书有 3 个硬要求,全达到才能过:

  • 主域名 + 所有子域名证书全覆盖:你主域是 game.xxx.com,里面 iframe 加载了 api.xxx.com,api 这个子域也必须有合法证书
  • TLS 最低 1.2:2026 年之后 TLS 1.0/1.1 的证书直接拒审
  • 证书链完整:很多 Let's Encrypt 的自动续签证书链会断掉一两级中间证书,WebView 连得上但审核系统判定失败

检查工具很便宜:SSL Labs 的在线检测跑一遍,评分低于 A- 就别提交了,基本会挂。我们有个客户主域配得很完善,评分 A+,但 iframe 里加了个 CDN 子域,CDN 证书挂了——只因为这一个子域把整个包拒了 3 次。调出 SSL Labs 的详细报告才发现问题点。

还有一个容易忽略的坑是证书有效期。Google Play 审核的时候会看证书剩余有效期,如果不足 30 天会被警告(不拒审,但审核时长拉到 5 天以上)。Let's Encrypt 的证书每 90 天就要续签一次,很多团队的自动续签脚本会在续签前一两周失效,审核刚好赶上这个节骨眼就很尴尬。提交审核前手动看一眼证书有效期,低于 60 天就立刻续签。

WebView 性能调优的 3 个关键参数

除了合规,审核系统还会做一项"体验评分"——冷启动到首屏渲染如果超过 4 秒,会被降权(不是直接拒,但会拉长审核时间)。3 个参数调好就能把首屏拉到 2 秒内:

webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); // 审核期间强制不缓存
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
webView.getSettings().setHardwareAccelerated(true);

第一个参数很多人会设成 LOAD_DEFAULT,但这样会导致审核系统在不同地域访问时看到不一样的首屏内容,误判"内容不一致"。审核期强制不缓存,等过审之后再调回来。

我们团队有个最稳的套路:H5 过审期间专门部署一个"审核环境"的域名,内容比线上版简化 30%,首屏渲染永远在 1.5 秒内。过审后再把 APK 里的域名改到正式环境。

有人会问,这样做会不会被 Google 认定"审核内容和线上内容不一致"导致二次审查?答案是不会——前提是你的审核环境内容是"精简版"而不是"完全不同版"。所谓精简是去掉一些动态广告位、第三方插件、重度 A/B 测试代码,核心玩法必须和正式环境一致。Google 的二次审查判定标准看的是"核心功能一致性",只要用户能在两个环境里玩的游戏本质是同一个,就没问题。

另外一个容易忽略的优化是 JavaScript 打包体积。H5 游戏如果主 JS 文件超过 2MB,WebView 解析会慢得很,首屏很难压到 2 秒以内。我们遇到过一个合作方的游戏主 bundle 5.3MB,靠 Webpack 的 code splitting 拆成 10 个懒加载 chunk 之后,首屏从 6 秒降到 1.8 秒,直接过审。

三、提交审核前的 48 小时流程表

这一步是很多人栽跟头的地方——包打出来了但不知道什么时候提交最好。

T-48 小时:证书 + 域名预检

提交前 48 小时,先把 HTTPS 证书、DNS 解析、所有子域证书全部验证一遍。SSL Labs 跑 A- 以上、DNS 解析在全球 5 个节点都 200 OK,才算过关。

这个步骤我们团队每次都跑,有 3 次发现证书续签失败,赶在提交前救回来了。如果直接提交再发现,等于白白浪费一次审核机会(还会扣账号信用分)。

T-24 小时:包体冒烟测试

真机跑一遍完整流程:冷启动、首屏、登录、支付入口、返回键、进入后台再回来、横竖屏切换。每个场景录屏存档,如果审核被拒要申诉时直接能拿出来做证据。

我们有个客户省了这一步,结果被审核说"支付入口不可用",其实是他们的支付服务那天刚好在维护 20 分钟。录屏能救回这种冤枉案子。

T-0:提交时间窗口

Google Play 的审核在太平洋时间(美西)工作日上午 8-11 点提交,过审速度最快,平均 31 小时;周五下午提交最慢,周末加持拉到 72 小时起。这个规律不是官方说的,是我们跑了 74 单统计出来的经验,误差大概 ±10%。

四、过审后的 3 件事

过审邮件到手之后,别急着点"开始放量"。有 3 件事必须先做,不然容易在上架 48 小时内被重审下架。

1. 内容灰度切换

过审用的是"审核环境"版本,正式放量要切到"正式环境"。但别一次切 100%——先切 10% 流量跑 12 小时,看 Play Console 的 Crash 和 ANR 指标稳不稳。稳了再切 50%,再稳再切全量。

这一步很多团队懒得做,直接 100% 切过去。我们见过最惨的案例是切完 2 小时内崩溃率飙到 8%,被 Google 自动下架复审,白白浪费首发黄金窗口。

2. 补包版本准备

过审通过那一刻,手里必须有一个 V1.0.1 的补包躺着。Google Play 对首发后 72 小时内的第一个更新包特别敏感,如果 72 小时后才提交补包,审核速度会比首发慢一倍。首发时顺便提交 V1.0.1 把一些明显的小 bug 修掉,审核会"打包"一起看。

3. 评分监控线

H5 游戏特别容易因为"加载慢"被差评刷低分。上架前 7 天每天盯一次评分,低于 4.2 分要立刻找原因——通常是特定地区的网络问题导致加载慢。这个阶段处理及时,后面就稳了。

五、过审前的提交核查清单

提示:提交审核前按这份清单逐项打勾,能规避 80% 的 H5 拒审原因。

包体层面

  • 签名证书:独立生成,未在其他包上用过
  • 权限声明:只有 INTERNET(如果涉及支付再加 com.android.vending.BILLING)
  • 目标 SDK:targetSdkVersion ≥ 34
  • WebView 版本:AndroidX WebView 117 以上
  • 包体大小:壳子本身不超过 10MB

服务端层面

  • HTTPS:SSL Labs 评分 ≥ A-
  • TLS 版本:≥ 1.2
  • DNS 解析:全球 5 节点稳定 200
  • 首屏时间:审核环境下 ≤ 2 秒
  • 隐私政策页:URL 可访问,内容与 Play Console 提交的声明一致

元数据层面

  • app 名称:与 WebView 里加载的游戏名一致(很多人忘了这点)
  • 截图:必须是真机跑这个 H5 的实际截图,不能用设计稿
  • icon:和 WebView 里游戏主界面 logo 一致
  • 描述:不要出现"网页游戏"、"H5"、"WebView"这种字眼(会被审核专门标记)

结论与行动建议

H5 上 Google Play 不难,难的是很多团队用原生 APK 的思路去搞 H5,结果处处踩坑。核心逻辑记住三条:壳的最小结构、HTTPS 证书的 3 个硬要求、审核期和正式期的环境分离。这三件事做到位,3 天过审是常态。

给不同阶段团队的建议

  • 第一次做 H5 上架:别自己写壳,找一个成熟的开源模板改改,比如 Capacitor 或 Cordova 的精简版。自己写壳至少要踩 10 个坑。
  • H5 已经被拒过 2 次:别纠结包体,去检查 HTTPS 证书和 WebView 版本。我们统计的 74 个案子里,被拒 2 次以上的 81% 是这两个原因。
  • H5 想批量上架:每个壳都用独立签名证书,壳代码可以共用但证书必须隔离。一个被封不影响其他。

H5 相比原生 APK 最大的优势是迭代快——线上改个 bug 一分钟生效,原生 APK 要走一次提交审核。把这个优势用好,过审只是起点。真正拉开差距的是过审之后的迭代节奏:同一款游戏,原生每两周一版、H5 每两天一版,六个月下来用户体验和留存的差距肉眼可见。

你手上的 H5 游戏,现在最该做的第一件事是跑一遍 SSL Labs 评分。如果评分低于 A-,剩下的事情都不用管,先把证书搞定再说。

想把你的 APP 稳上 Google Play?

不过审不收费,最快 3 天过审

免费咨询