鸿蒙纪·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 站 。让我们一起成长,变得更强。我们下次再见~

相关推荐
00后程序员张5 分钟前
iOS 应用上架常见问题与解决方案,多工具组合的实战经验
android·ios·小程序·https·uni-app·iphone·webview
恋猫de小郭24 分钟前
Flutter 小技巧之有趣的 UI 骨架屏框架 skeletonizer
android·前端·flutter
Kapaseker1 小时前
Kotlin 老手怎么写代码?
android·kotlin
一狐九1 小时前
Flutter如何通过GlobalKey调用组件内的方法
前端·flutter
大雷神11 小时前
鸿蒙安卓前端中加载丢帧:ArkWeb分析
harmonyos
技术liul14 小时前
使用安卓平板,通过USB数据线(而不是Wi-Fi)来控制电脑(版本1)
android·stm32·电脑
_祝你今天愉快16 小时前
Android FrameWork - 开机启动 & Init 进程 初探
android
2501_9160074716 小时前
iOS App 上架实战 从内测到应用商店发布的全周期流程解析
android·ios·小程序·https·uni-app·iphone·webview
TimeFine16 小时前
Android 邮件发送日志
android