为什么要签名
鸿蒙应用要装到用户手机上,必须先用开发者证书签过名。签名相当于给应用盖了个官方章,系统据此确认这份安装包没被人篡改过、确实出自某个开发者。没有正确签名的包,系统直接拒装。
签名是应用的身份证,出包前必须配好,否则连真机都装不上。
这篇把从签名到上架的完整流程走一遍。
证书与 profile
开发者先在华为开发者联盟注册,拿到开发者证书,再创建应用并申请发布 profile。证书管身份,profile 管这个应用能用哪些设备、走哪种分发。两份文件一起导入 DevEco Studio,打包时才知道用谁的章来签。
签名速查
- 证书证明开发者身份,长期保管别泄露。
- profile绑定应用与分发类型。
- 导入在 DevEco 里关联工程。
打包出包
工程跑通、签名配好后,在 DevEco 里选生成正式包。工具会把代码、资源、配置打成一个 hap 包,并用正式证书签名。这个包就是要上架的成品,测试机用的调试包不能混着用。
# 命令行生成签名包(示意)
./build app --mode release \
--cert my_cert.cer \
--profile release_profile.p7b
出包前记得把日志、调试开关关掉,版本号递增。
上架应用市场
把签名后的 hap 包传到华为应用市场后台,填好应用介绍、截图、隐私说明,提交审核。审核通过后应用就上架了,用户在市场里能搜到、能下载安装。审核重点看权限是否合理、有没有违规内容。
分发与灰度
正式上架不是一锤子买卖。新版本可以先推给一小批用户灰度观察,看崩溃率、看反馈,稳了再全量。也可以做企业内部分发,只给特定用户用。分发节奏由开发者在后台控。
- 灰度先小范围验证。
- 企业包单独分发。
- 按数据决定全量节奏。
版本与升级
每次发版都要递增版本号,市场据此判断要不要给老用户推送升级。同一签名的应用才能覆盖升级,换了证书就等于换了个新应用,老用户的数据也接不上。所以证书一旦发出去就要一直留着。
实战:出一个正式包
以一个简单应用为例走一遍出包流程。
// module.json5 里确认版本号
{
module: {
versionCode: 12,
versionName: "1.2.0"
}
}
版本号递好、签名导好,选 release 出包。正式包出来传市场、过审、上架,整个分发链路就闭环了。