鸿蒙纪·Flutter卷#03 | 从配置证书到打包发布

经过十几天的备案和审核,Flutter 项目 RegExpo 已经成功上架 鸿蒙应用商店 了,有鸿蒙设备的可以下载体验一下 ~

整个上架过程,我会在后续几篇文章逐步介绍。上一篇 《已有 Flutter 项目鸿蒙化》 已经将 Flutter 项目在鸿蒙上跑起来了,本篇继续分享一下 证书配置 以及 打包上架的操作流程。

应用商店 主页

一、 了解证书与配置

鸿蒙打包证书用于标识开发者身份、保证应用完整性、防止被篡改,同时也是应用安装、调试、上架和后续升级的必要凭证。


1. 了解证书相关文件

首先,签名整个过程涉及到如下 4 个文件:

  • .p12 : 存储你的 私钥 和对应的公钥证书(私钥是签名的核心,不能泄露)
  • .crs : 发送给华为开发者后台,用它来生成 .cer 证书文件
  • .cer:包含公钥和开发者信息,用来让系统或别人验证签名。
  • .p7b: HarmonyOS 特有的"应用安装许可",里面绑定了很多应用信息。

其中三个文件需要在 DevEco Studio 中配置,如下所示:

对开发者而言最重要的是,知道这几个文件该怎么生成。


2. 自己签名的流程

首先我们通过 DevEco Studio 创建私钥 .p12 和 请求文件.crs :

选择存储的文件夹位置,以及密码、Alias 即可。这两步会分别生成 .p12.crs


AppGallery Connect 是鸿蒙应用的后台管理, 可以在 证书、APP ID和Profile 栏新增证书,选择刚才生成的 .crs 即可创建:

然后点击下载证书,即可得到 .cer 证书文件:

同样在 Profile 栏添加一个 Profile ,点击下载,即可得到 .p7b 文件:

到这里签名相关的所有文件就准备就绪了,整体流程如下,也不困难 ~

scss 复制代码
【本地生成】
┌──────────────┐
│  私钥 (.p12) │ ←─── 你自己生成的密钥对
└──────────────┘
        │
        ▼
【生成请求文件】
┌──────────────┐
│  证书请求 (.crs) │ ←─── 从 .p12 提取公钥 + 开发者信息生成
└──────────────┘
        │
        ▼
【上传到华为开发者平台】
┌──────────────┐
│  开发证书 (.cer) │ ←─── 平台根据 .crs 颁发,绑定公钥身份
└──────────────┘
        │
        ▼
【生成 Profile 文件】
┌──────────────┐
│  Profile (.p7b) │ ←─── 平台生成,绑定 .cer 和应用信息
└──────────────┘

3. 配置签名

在 DevEco Studio 中的 File/Project Structure 中可以打开签名的配置面板:

签名的配置信息可以在 build-profile.json5 文件中同步查看:


二、打包与发布到应用市场

应用开发完成后,需要经过打包、签名和测试,生成可安装的安装包。随后将应用上传到 AppGallery Connect,配置应用信息与截图,提交审核。通过这一流程,应用才能正式上线,供用户下载和使用。


1. 生成 app 安装包

发布到应用市场的包需要 release 证书,在 AppGallery Connect 中生成时可以选择。另外build-profile.json5 中的签名可以配置多个,打包时选用 release 即可:

有一点很重要,需要在如下所示的 Build Mode 在选择 release ,不然打不出 app 包。这点坑了我很久:


可以通过 Build/Build Hap(s)/APP(s)/ BuildAPP(s) 打包成 app, 以供上架使用:

在 build 文件夹下就可以看到打包出已签名安装包:


处理自己打包上传,你也可以通过 Build/Upload Product 直接打包上传到 AppGallery Connect。 前提是你已经在 AppGallery Connect 里创建了应用:

这样就可以自动上传:


2. 上传应用与发布审核

首先要在 AppGallery Connect 的 APP 页签中创建应用:

然后根据你的应用,写一下基本信息,这里的截图必须是 720*1280px,但一般手机屏幕比较大,可以导入 PS 里自己修改一下:


另外隐私协议这一块,如果没有网站,可以选择 隐私托管,填一下基本信息即可,整个流程没有什么太复杂的。


三、应用备案

整个过程最麻烦的一步就当数应用备案了,不备案是无法上架的。一开始硬着头皮上,结果自然是被据了。

但是鸿蒙相关工作人员还是非常热情的,邀请我加入群聊,有什么问题都可以咨询。


个人的备案还是比较简单的,就是等待审核的事件比较长,大概要花十天左右。在鸿蒙官方文档 《APP备案FAQ》 中详细介绍了备案的常见问题:

由于我在腾讯云有云服务器,和腾讯云比较亲切,所以就在这个平台进行备案啦。登录腾讯云,可以看到备案的大按钮。点击进入备案界面:

备案界面中有很清晰的备案流程,点击开始备案。其中填写一些个人和应用的信息,

  • 第二天腾讯云那边,会打个电话确认一下,只是确认你的 名字身份证后六位,关于应用什么的没有询问。
  • 腾讯云的初审过了,会发一个验证码,在管局的网站上认证一下即可。进入管局审核的阶段
  • 这个阶段花了7 天时间,通过之后会再让你进行公安备案。
  • 公安备案比较快,也是填一些基本资料,一天就过了。
标题

当备案通过,应用里的备案信息就可以验证通过,然后再提交审核即可 ~


四、尾声

整个过程下来,其实并没有想象中那么复杂,只是涉及的环节比较多:证书配置 → 打包签名 → 上传审核 → 应用备案,每一步都需要耐心和细心。好在鸿蒙的官方支持和平台生态都算完善,只要一步步跟着流程来,最终都能顺利完成上架。

对我而言,这次 Flutter 项目成功登陆鸿蒙应用商店,不仅是一次技术上的尝试,也算是对国产生态的一次实践探索。Flutter 框架这算是真的 一统七国 了:

  • 移动端: AndroidiOSHarmonyOS
  • 桌面端: WindowsMacOSLinux
  • 浏览器:Web

希望这些分享能帮到和我一样准备把 Flutter 项目迁移到鸿蒙的开发者们。也希望国产的操作系统的生态可以也来越好,加油吧少年 ~


更多文章和视频知识资讯,大家可以关注我的公众号、掘金和 B 站 。让我们一起成长,变得更强。我们下次再见~

相关推荐
TT_Close10 小时前
【Flutter×鸿蒙】FVM 不认鸿蒙 SDK?4步手动塞进去
flutter·swift·harmonyos
雨白11 小时前
Android 快捷方式实战指南:静态、动态与固定快捷方式详解
android
hqk11 小时前
鸿蒙项目实战:手把手带你实现 WanAndroid 布局与交互
android·前端·harmonyos
TT_Close12 小时前
【Flutter×鸿蒙】一个"插队"技巧,解决90%的 command not found
flutter·harmonyos
LING12 小时前
RN容器启动优化实践
android·react native
恋猫de小郭14 小时前
Flutter 发布官方 Skills ,Flutter 在 AI 领域再添一助力
android·前端·flutter
Kapaseker20 小时前
一杯美式搞懂 Any、Unit、Nothing
android·kotlin
黄林晴20 小时前
你的 Android App 还没接 AI?Gemini API 接入全攻略
android
恋猫de小郭1 天前
2026 Flutter VS React Native ,同时在 AI 时代 VS Native 开发,你没见过的版本
android·前端·flutter
冬奇Lab1 天前
PowerManagerService(上):电源状态与WakeLock管理
android·源码阅读