发布与上架:应用签名与打包(AAB、APK)、Google Play上架流程、国内应用商店上架(华为、小米、OPPO、vivo)、版本更新与热修复
说实话,很多开发者觉得写代码是最难的。但在我看来,把代码变成用户手机里能跑的应用,这个过程才是真正的「最后一公里」。我见过太多项目,功能做得挺好,结果卡在打包签名上,或者上架后被商店驳回。今天咱们就把这摊事彻底捋清楚。
一、应用签名:你的数字身份证
签名是什么?说白了就是给你的 APK 或 AAB 文件盖个章。这个章证明「这个应用是我写的」,别人改不了。Android 系统靠签名来识别应用的作者,同一个包名但签名不同,系统会认为是两个不同的应用。
核心要点:签名文件一定要保管好!丢了签名,你永远无法更新已发布的应用。我曾经有个同事,换电脑时把 keystore 弄丢了,结果那个应用只能永远停在 1.0 版本,最后被迫下架重做。
1. 生成签名文件
Android Studio 里操作很简单:
Build → Generate Signed Bundle / APK → 创建新密钥
填好这些信息:
- Key store path:签名文件的存放路径,建议放在项目根目录外的安全位置
- Password:密钥库密码,记牢!
- Key alias:别名,一个密钥库可以存多个密钥
- Validity (years):有效期,Google Play 要求至少 25 年,我一般直接填 30 年
我的习惯:把 keystore 文件备份到两个不同的地方,密码写在物理笔记本上。别问我为什么这么谨慎,问就是吃过亏。
2. 签名配置(build.gradle)
项目里配置签名,这样每次打包就不用手动选了:
android {
signingConfigs {
release {
storeFile file("my-release-key.jks")
storePassword "密码"
keyAlias "my-alias"
keyPassword "密码"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
注意:千万别把密码硬编码提交到 Git 仓库!我建议用 gradle.properties 文件,或者用 CI/CD 的环境变量来管理。
二、打包格式:APK vs AAB
从 2021 年 8 月开始,Google Play 强制要求新应用使用 AAB 格式。但国内商店目前还是以 APK 为主。嗯,这里要分清楚场景。
| 对比项 | APK | AAB |
|---|---|---|
| 文件大小 | 较大,包含所有资源 | 较小,按需分发 |
| 分发方式 | 直接安装 | 需 Google Play 处理 |
| 国内支持 | 全部支持 | 部分商店开始支持 |
| 签名要求 | JKS 或 PKCS12 | 必须使用 APK Signature Scheme v2/v3 |
我个人建议:Google Play 用 AAB,国内商店用 APK。这样两边都照顾到。
三、Google Play 上架流程
上架 Google Play 其实不复杂,但有几个坑要注意。我一步步说:
- 注册开发者账号:一次性 25 美元,需要 Google 账号和信用卡
- 创建应用:在 Google Play Console 里点「创建应用」,填好名称和默认语言
- 填写商店信息:
- 应用说明(短描述和完整描述)
- 截图(至少 2 张,建议 8 张)
- 图标、特色图、宣传图
- 应用分类和标签
- 设置定价和分发范围:免费还是付费?哪些国家可以下载?
- 上传 AAB 文件:记得用签名后的版本
- 审核:通常几小时到几天不等
避坑指南:我曾经因为应用里用了「短信权限」被 Google 驳回三次。后来才知道,Google 对敏感权限审核特别严,必须说明使用场景,还要提供视频演示。所以,能不用敏感权限就别用。
四、国内应用商店上架
国内商店各有各的脾气。我整理了一下主流商店的要点:
华为应用市场
- 需要企业开发者认证(个人也可以,但限制多)
- 必须使用华为签名工具重新签名
- 审核周期:1-3 个工作日
- 特别注意:华为对隐私政策要求极高,必须提供完整的隐私说明
小米应用商店
- 个人开发者可以上架
- 需要提供软著或授权书
- 审核周期:1-2 个工作日
- 小米对应用质量要求高,UI 不规范会被驳回
OPPO 软件商店
- 支持个人开发者
- 需要提供身份证信息
- 审核周期:1-2 个工作日
- OPPO 对广告行为很敏感,别乱弹窗
vivo 应用商店
- 个人开发者可以上架
- 需要提供软著或授权书
- 审核周期:2-3 个工作日
- vivo 对应用稳定性要求高,崩溃率超过 0.5% 会被下架
我的经验:国内商店上架,最稳妥的做法是先把华为和小米过了。这两家审核最严,过了它们,其他商店基本没问题。
五、版本更新与热修复
应用上线后,版本更新是常态。但怎么让用户无缝升级?这里有两个方案:
1. 常规版本更新
通过应用商店的版本管理功能:
- 在 build.gradle 里设置 versionCode 和 versionName
- 每次发布新版本,versionCode 必须递增
- 商店会根据 versionCode 判断是否需要更新
android {
defaultConfig {
versionCode 3
versionName "1.2.0"
}
}
2. 热修复
热修复是什么?就是不重新安装应用,直接修复线上 bug。常用的方案有:
- Tinker(腾讯):微信团队出品,成熟稳定
- Sophix(阿里):接入简单,兼容性好
- Robust(美团):即时生效,不需要重启
注意:热修复不是万能的。它只能修复方法级别的 bug,不能修改资源文件、AndroidManifest.xml 或者新增四大组件。说白了,小修小补可以,大动干戈还得走商店更新。
我个人的建议是:常规更新走商店,紧急 bug 用热修复。比如线上有个空指针崩溃,用户一打开就闪退,这时候热修复就派上用场了。我曾经用 Tinker 在 2 小时内修复了一个线上崩溃,用户完全无感知,体验非常好。
六、知识体系总览
下面这张图把本章的核心内容串起来了,你可以对照着看:
好了,这一章的内容就这些。从签名到打包,从 Google Play 到国内商店,再到版本更新和热修复,每一步都有它的门道。你把这些都掌握了,应用上线这块基本就稳了。
公众号:蓝海资料掘金营,微信deep3321