游戏 App 上架 Google Play 指南
以Unity 移动端 MMORPG、国内团队出海为主要场景。⚠️ Google Play 的政策和技术要求每年都在变化尤其是目标 API 级别、结算库版本和包体限制。下面的具体数字反映的是撰写时的情况提交前请以Play 管理中心Play Console的提示和官方政策中心为准。先打个比方入驻一家大型购物中心购物中心Google Play 办营业执照注册开发者账号、完成身份验证 货品按商场标准包装提交 AAB 格式、满足 64 位和 API 级别要求 必须用商场的收银台虚拟商品必须走 Google Play 结算 填写各种申报表数据安全、内容分级、目标受众等声明️ 布置店面橱窗商店详情页图标、截图、视频、描述 开业前安检应用审核⭐ 顾客评分决定铺位好坏崩溃率、ANR 率影响曝光和推荐商场有一条底线你可以在店里卖什么、怎么收钱、怎么换货都得守商场的规矩。国内游戏上架最常踩的坑恰恰就在收钱和自己换货热更新这两件事上。总体流程注册开发者账号 ──▶ 技术适配 ──▶ 填写政策声明 ──▶ 制作商店素材 │ ┌────────────────────────────────────────────┘ ▼ 内部测试 ──▶ 封闭测试 ──▶可选开放测试/预注册 ──▶ 正式发布分阶段 │ ▼ 监控 Android Vitals、评论、更新时间规划建议从注册账号到正式上线至少预留4~6 周。新账号审核较慢个人账号还有强制测试期临近上线才开始准备很容易延期。一、开发者账号1. 个人账号还是组织账号个人账号组织账号注册费一次性 25 美元一次性 25 美元需要的材料个人身份证明D-U-N-S 邓白氏编码、公司信息、官方联系方式正式发布前新账号必须先完成封闭测试见下无此要求商店显示可能公开个人姓名、地址显示公司名称适合独立开发者商业游戏团队强烈推荐 D-U-N-S 编码可以免费申请但通常需要几周尽早办理。2. 新个人账号的测试门槛近年新注册的个人账号在申请正式发布权限前需要运行一次封闭测试一定数量的测试人员目前为12 人此前曾是 20 人连续参与至少 14 天然后在 Play Console 中回答关于测试情况的问卷。组织账号不受此限制这也是商业项目选择组织账号的重要原因。3. 其他准备付款资料如果有内购或付费下载需要设置商家资料和税务信息账号安全开启两步验证用公司邮箱注册并通过 Play Console 的用户和权限给团队成员分配权限不要共用一个账号不要多个账号互相关联发布违规应用一个账号被封关联账号可能被连带封禁。二、技术适配Unity 构建清单1. 必须满足的硬性要求要求说明Unity 中的设置AAB 格式新应用必须用 Android App Bundle 上传不能用 APKBuild Settings → 勾选Build App Bundle (Google Play)64 位包含原生代码的应用必须提供 64 位版本Player Settings → Scripting Backend 选IL2CPPTarget Architectures 勾选ARM64目标 API 级别每年约 8 月底提高要求通常要求面向最新版本减一的 Android撰写时为 Android 15 / API 35Player Settings →Target API Level16 KB 页面大小面向 Android 15 及以上的新应用和更新需要原生库支持 16 KB 内存页升级到支持此特性的 Unity 版本并确认所有第三方 .so 库都已适配Play 应用签名AAB 必须使用 Google 托管的应用签名见下文⚠️16 KB 页面大小最容易卡住的不是 Unity 本身而是第三方 SDK 里的旧.so文件语音、反作弊、旧版统计 SDK 等。上架前逐个确认。2. 签名两把钥匙你持有 上传密钥Upload Key── 用它给 AAB 签名后上传 Google 持有 应用签名密钥App Signing Key── Google 用它给最终 APK 签名分发给用户上传密钥丢了可以通过 Play Console 申请重置务必备份 keystore 文件和密码放在团队共享的安全位置不要只存在某个人的电脑上如果游戏使用了 Google 登录、Firebase 等需要配置 SHA-1 指纹的服务要使用Play Console 中显示的应用签名密钥指纹而不是本地上传密钥的指纹。这是本地测试正常、商店下载后登录失败的常见原因。3. 包体MMO 的大问题AAB 的基础模块有大小上限目前压缩后为 200MB 左右MMO 的资源动辄几个 GB必须拆分。方式说明Play Asset DeliveryPAD官方推荐。资源包分三种交付方式 ↓├ install-time随应用一起安装安装完就可用放首包必需的资源├ fast-follow安装后自动开始下载放新手村之后的资源└ on-demand游戏运行时按需请求下载放后期地图、活动资源自建 CDN 下载资源游戏启动后从自己的服务器下载 AssetBundle / Addressables。国内团队最常用但要注意下面热更新的政策边界 旧的OBB 扩展文件方案不再适用于 AAB。Unity 中可以通过 Split Application Binary 配合 Unity 的 PAD 支持实现资源包交付各资源包大小和总大小上限请查看当前官方文档。首包大小直接影响转化率尤其是在网络和存储条件一般的新兴市场。建议首包只放引擎、代码、登录与新手引导所需资源其余全部后续下载。4. 权限与 SDK 清理国内版本的工程往往带着大量不适用于海外的 SDK 和权限需要处理的原因国内渠道 SDK各手机厂商渠道、国内支付、国内登录可能违反结算政策或包含自更新、收集设备标识等行为REQUEST_INSTALL_PACKAGES受限权限游戏基本不允许申请QUERY_ALL_PACKAGES受限权限需要充分理由READ_PHONE_STATE、读取 IMEI 等设备标识非必要不要申请且会影响数据安全声明AD_ID权限如果使用广告 ID广告、归因 SDK需要声明如果不使用也要在声明中如实填写第三方 SDK 合并进来的多余权限可以在AndroidManifest.xml中移除uses-permissionandroid:nameandroid.permission.READ_PHONE_STATEtools:noderemove/ 用 Android Studio 打开导出的工程查看Merged Manifest确认最终包里到底有哪些权限。5. 推荐接入服务作用Play Integrity API校验设备和应用是否被篡改对 MMO 反外挂很有用取代旧的 SafetyNetPlay Games Services登录、成就、云存档非强制In-App Review API在合适时机请求玩家评分In-App Updates API提示玩家更新到新版本ADPF / Game Mode前面章节讲过的性能和温控优化三、支付必须使用 Google Play 结算1. 基本原则在游戏中销售数字商品和服务钻石、月卡、通行证、皮肤、去广告等必须使用 Google Play 结算系统Google Play Billing。❌ 在游戏内放支付宝、微信支付、第三方网页支付链接购买钻石 ❌ 在游戏内引导玩家去官网充值更便宜 ✅ 使用 Google Play Billing Library要点说明结算库版本Google 会定期要求升级到较新版本如 7.x 及以上旧版本会被拒绝上传更新服务端校验一定要在服务端通过 Google Play Developer API 校验购买凭证防止伪造订单确认购买购买后需要在规定时间内确认acknowledge否则会自动退款实时开发者通知RTDN接收退款、订阅变化等事件及时扣回道具防止充值后退款刷钻手续费通常为 15%~30%具体以当前政策为准 部分地区如欧洲经济区、韩国、印度等存在替代结算或外部优惠计划美国也因诉讼出现了政策变化。这些规则复杂且仍在变动需要单独申请和遵守条件不能直接默认可用。2. 随机道具必须公示概率抽卡、开箱、扭蛋等付费获得随机虚拟物品的机制必须在购买前清晰公示各项物品的获得概率。此外部分国家和地区对开箱、抽卡还有额外的法律要求例如保底机制、未成年人限制、概率公示的具体格式面向这些市场时需要单独确认。3. 真钱博彩涉及真实货币下注、可以兑换现金的玩法受到严格限制普通游戏不要碰。四、政策高危区国内团队最容易踩的坑1. 热更新Google Play 的设备和网络滥用政策大意是应用不能通过 Google Play 以外的方式修改、替换或更新自身也不能从 Google Play 以外的来源下载可执行代码如 dex、JAR、.so 文件。在虚拟机或解释器中运行的代码不受此限制。方式风险下载新的.so、dex、APK 替换自身❌ 明确违规游戏内弹窗下载新版本 APK 安装❌ 明确违规下载 AssetBundle、配置表、美术资源✅ 通常没问题属于内容不是可执行代码Lua 脚本热更新⚠️ 属于解释执行业界普遍使用但不能借此改变应用的核心功能或绕过审核基于解释器的 C# 热更新方案如 HybridCLR 一类⚠️ 同上属于灰色地带常见做法是不在热更新中加入审核时不存在的敏感功能底线热更新可以修 Bug、上活动、调数值但不能用来绕过审核例如审核时不开放抽卡上线后再通过热更新开启或者审核版本没有第三方支付上线后再热更新出来。这类行为一经发现后果通常是下架甚至封号。2. 账号删除允许在应用内创建账号的应用必须提供删除账号的途径应用内有删除账号的入口还要提供一个网页链接玩家不用安装游戏也能申请删除账号和数据并在 Play Console 中填写这个链接。MMO 几乎都有账号系统这一条必须做。删除流程可以有冷静期和二次确认但要说明会删除哪些数据、保留哪些数据如法律要求保留的交易记录以及保留多久。3. 聊天等用户生成内容UGCMMO 的世界频道、私聊、公会、玩家自定义名称都属于用户生成内容需要在用户条款中禁止不当内容提供举报功能和屏蔽其他玩家的功能有内容审核机制关键词过滤、人工处理举报。4. 隐私与数据必须提供隐私政策链接可公开访问的网页不能是 PDF 下载链接或打不开的页面数据安全表单要和实际行为一致包括所有第三方 SDK 收集的数据广告、统计、归因、崩溃上报、客服、语音 SDK。很多团队漏填 SDK 的数据收集被判定为声明与实际不符面向欧洲需考虑 GDPR 同意弹窗面向美国加州有 CCPA 等。5. 其他常见雷区雷区说明商店素材误导截图、视频展示了游戏中不存在的画面或用其他游戏的素材冒充和侵权名称、图标、角色和知名 IP 过于相似激励性评分用道具奖励换取五星好评属于违规关键词堆砌标题或描述中堆砌热门游戏名、无关关键词广告行为广告突然全屏弹出、无法关闭、伪装成游戏内容五、Play Console 的应用内容声明在Play Console → 政策 → 应用内容中逐项填写全部完成才能发布声明项游戏需要注意的隐私政策填写公开的网页地址应用访问权限游戏需要登录才能体验提供可用的测试账号和说明否则审核员进不去会直接拒绝广告是否包含广告包括激励视频内容分级填写 IARC 问卷系统自动生成各国分级。暴力、血腥、模拟赌博、用户互动、数字购买等都要如实填写目标受众和内容选择目标年龄段。如果包含 13 岁以下将适用更严格的家庭政策广告和数据收集限制很多数据安全见上文账号删除填写网页删除链接政府应用、金融功能、健康功能等游戏一般选否 关于应用访问权限如果游戏有地区限制、服务器白名单、需要特定条件才能进入务必让审核员能顺利进入。审核员可能在美国或其他国家确保服务器对他们开放并提供跳过新手引导的说明。六、商店详情页你的橱窗素材要求以官方当前规格为准建议应用名称不超过 30 个字符游戏名 简短品类词不要堆关键词简短说明不超过 80 个字符一句话说清卖点完整说明不超过 4000 个字符玩法、特色、更新内容关键词自然出现图标512×512 PNG不要加免费第一名等文字不要用误导性徽章宣传图Feature Graphic1024×500被推荐时会展示务必认真做截图至少 2 张游戏建议至少 4 张横屏或竖屏截图前 2~3 张最关键展示核心玩法和画面最好的场景宣传视频YouTube 链接前几秒直接展示玩法不要长片头本地化面向的每个主要市场都准备本地语言的描述和截图截图中的文字也要本地化可以用商店详情实验Store Listing Experiments对图标、截图做 A/B 测试可以为不同国家、不同来源设置自定义商店详情页。预注册上线前可以开启预注册玩家提前登记上线时自动通知或安装并可以设置预注册奖励。这对 MMO 开服冲量很有帮助。七、测试与发布1. 测试轨道轨道人数用途内部测试最多 100 人团队内部快速验证审核快封闭测试指定邮箱或 Google 群组小范围玩家测试新个人账号的强制测试也在这里进行开放测试任何人都可以加入大规模测试玩家能在商店中看到抢先体验正式版所有人正式上线2. 预发布报告每次上传到测试轨道Google 会在多种真机上自动运行你的游戏生成预发布报告崩溃、性能、截图、安全问题、无障碍问题。 游戏通常卡在登录界面自动测试走不远。但它能提前发现启动即崩溃的机型非常有价值。3. 分阶段发布正式版更新时可以先发布给一部分用户1% ──▶ 5% ──▶ 20% ──▶ 50% ──▶ 100% 每一步观察崩溃率、ANR 率、评论有问题立即暂停服务端驱动的 MMO 尤其要注意分阶段发布意味着新旧客户端同时在线服务端协议必须兼容两个版本。4. 审核时间一般几个小时到几天新账号、新应用、首次提交通常更慢可能一周以上选择托管发布Managed Publishing审核通过后不自动上线由你决定上线时间便于配合开服、宣发节点。八、上线之后Android VitalsGoogle 会统计游戏的稳定性超过不良行为阈值会降低在商店中的曝光度商店页面还可能向用户显示警告。指标整体阈值撰写时单个机型阈值用户感知的崩溃率1.09%8%用户感知的 ANR 率0.47%8% 这就把前面几章的内容串起来了主线程跑在小核上导致卡顿、发热降频、加载时主线程长时间阻塞都可能变成 ANR最终影响的是商店排名和推荐