前言
写完代码、跑通测试,只算 60%。剩下 40% 是上架——这一关没过,产品没法到用户手上。各家应用市场(华为、小米、OPPO、vivo、应用宝、Google Play)的审核差异巨大。本篇从工程师视角,整理一遍怎么从零准备上架 + 怎么应对被拒。
一、国内五大应用市场
海外是另一套规则。这篇重点聊国内五家与 Google Play。
二、上架前的工程清单
2.1 应用签名
国内:必须自有 keystore,不能用 debug.keystore
Google Play:要上传 AAB 用 Google 自己的签名机制(App Signing)
// build.gradle.kts
signingConfigs {
create("release") {
storeFile = file("keystore/release.keystore")
storePassword = System.getenv("KEYSTORE_PASS")
keyAlias = "release"
keyPassword = System.getenv("KEY_PASS")
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
proguardFiles("proguard-rules.pro")
}
}
环境变量管理密钥,不能写在 git 里。
2.2 应用包名与版本
包名一旦上架不可改:包名变更 = 新 App
versionCode 只能递增
versionName 是给用户看的(1.0.0 → 1.1.0)
android {
defaultConfig {
versionCode = 100 // 单调递增
versionName = "1.0.0"
}
}
2.3 应用图标
必备:48×48、72×72、96×96、144×144、192×192、512×512
部分市场需要 1024×1024
不接受 PNG 透明背景
2.4 应用截图
至少 3 张,至多 10 张
推荐尺寸:1080×1920、1200×1920
不能有设备边框、调试角标、demo 字样
2.5 应用描述与分类
标题 ≤ 30 字符
简介 ≤ 80 字符
详细描述 ≤ 4000 字符
一句话描述 + 完整描述 + 关键词
2.6 隐私政策 URL
每家市场都强制要求。托管在自有域名:
https://your-cdn.com/privacy-policy.html
URL 必须可访问(curl 200 不是 403),否则审核失败。
三、上架前的自检脚本
# 用 aapt 查 manifest
aapt dump badging app-release.apk
# 看权限列表
aapt dump permissions app-release.apk
# 看 SDK 版本
aapt dump --include-meta-data app-release.apk | head
常见自检点:
四、各市场"易被拒"清单
4.1 华为 AppGallery
隐私弹窗硬性要求每次启动检查
必须在华为开发者联盟完成主体认证(个人 vs 企业)
应用内含以下功能必填:
4.2 小米应用商店
必须适配 MIUI 14 / 15
应用不能滥用剪贴板、读取手机状态
应用图标不能"看起来像"系统应用
4.3 OPPO 软件商店
必须支持 ColorOS 13+
推送 SDK 必须是 OPPO Push 或自建
后台运行时长申请需合理说明
4.4 vivo 商店
同 OPPO,OriginOS 适配要求
摄像头权限申请不能从首页立即弹
4.5 应用宝
必须上传软著(软件著作权)
主体名称必须与软著主体一致
个人主体的 App 必须显示"个人信息收集清单"
4.6 Google Play
除了隐私合规外,还要:
Data Safety Form(数据安全表格)
Content Rating(内容分级)
Target API ≥ 34(每年提升)
AAB 必须传(Play 不再接受 APK)
五、紧急应对:被拒后的处理
5.1 常见被拒理由与处理
5.2 加急审核
大多数市场有付费加急通道:
华为加急:2 小时内(500 元)
小米加急:8 小时内(300 元)
Google Play:紧急账户(500 美元/年)
加急不通过,会扣但不退。
5.3 申诉模板
被拒后的申诉信结构:
尊敬的审核团队:
应用 [AppName] 因 [被拒理由] 被拒,我们做了以下修改:
1. [原因1] → [修改动作1]
2. [原因2] → [修改动作2]
详细说明:
[具体改动截图]
附件:[截图1] [截图2] [测试报告]
感谢重新审核。
AppId: xxx
Bundle ID: com.xxx.xxx
联系电话: xxx
申诉回得多、写清楚,审核员回得也更友好。
六、版本更新策略
6.1 灰度发布
主流市场支持灰度:
华为:1%、5%、20%、50%、100% 五档
小米:开发者后台直接选比例
Google Play:Staged Rollout 1%-100%
灰度策略:
// 在 App 内根据灰度比例放量
fun isFeatureEnabled(featureKey: String): Boolean {
val percent = getRemoteConfig("rollout_percent").toIntOrNull() ?: 0
val userId = (userId.hashCode() and 0x7fffffff) % 100
return userId < percent
}
6.2 紧急热修
上线后遇到重大问题怎么办?
后端:紧急关停 server 端 feature flag
客户端:强制升级到最新版本(多数 4-6 小时内)
部分市场(华为、小米)支持"紧急通知式下架",12-24 小时生效
6.3 准出策略
每个版本上线前需通过:
七、未来一年值得关注的审核变化
AI 生成内容标记:所有 LLM 生成的内容必须标识为 AI 生成
权限白名单收紧:位置、通讯录权限将更严格
SDK 准入制:Google Play 推出 SDK Console,要求 SDK 提供方也合规
海外市场审核:欧盟 DMA 加严,Apple、Google 的反垄断压力影响上架
小结
上架是产品落地的"最后一公里",也是最容易被团队低估的环节。建议把上架流程标准化:每次上架必须有 privacy policy 更新、SDK 列表更新、自检报告、CRASH/ANR 阈值报告。被拒一次就建一次 SOP,半年后整套流程会非常流畅。
下一篇聊用户数据采集合规专项——这是 2026 年应用市场最严的一块,单独的合规设计是 100 万用户的 App 必备。
参考阅读
Google Play Console:Data Safety Form Guide
华为开发者联盟:AppGallery 上架手册
个人信息保护法(PIPL)