当前位置: 首页 > article >正文

从零开始开发纯血鸿蒙应用之多签名证书管理

从零开始开发纯血鸿蒙应用

  • 一、前言
  • 二、鸿蒙应用配置签名证书的方式
    • 1、自动获取签名证书
    • 2、手动配置签名证书
  • 三、多签名证书配置和使用
  • 四、多证书使用

一、前言

由于手机操作系统,比电脑操作系统脆弱很多,同时,由于手机的便携性,用户群体中存在许多计算机知识并不怎么丰富的人,诸多原因纠集在一起,使得当下的部分手机操作系统,采取了比电脑操作系统更为严格的应用管控策略,其中,就规定了安装到手机上的app,都必须具有签名证书。

如今,纯血鸿蒙系统为了进一步保障用户的手机安全,理所当然的引入了app签名证书的策略,并且,即便是开发者部署Debug版app到自己的手机上,也是需要签名证书才能完成部署,否则就会失败。

在这里插入图片描述

二、鸿蒙应用配置签名证书的方式

目前,DevEco Studio 中配置签名证书的方式有两种,自动和手动。

1、自动获取签名证书

只要 DevEco Studio 成功登录开发者的华为开发者账号,那么,就可以在上图的页面中,勾选Automatically generate signature 去自动生成 Debug、也即调试证书;这种自动生成证书的方式,不适合用于发布证书的配置,发布证书的配置只能通过手动的方式进行配置。

2、手动配置签名证书

想要手动配置鸿蒙应用的签名证书,首先,需要登录华为鸿蒙应用市场官网 AppGallery Connect:
在这里插入图片描述
在其中的证书、APP ID和Profile 页面就可以进行证书的创建、也即申请:
在这里插入图片描述
不过,在前往 APPGallery Connect 平台创建证书前,还必须用 DevEco Studio 获取一个签名文件、即p12文件和csr文件:
在这里插入图片描述
生成的 CSR 文件,会在 APPGallery Connect 平台上创建证书时使用:
在这里插入图片描述
证书区分调试证书和发布证书,签名文件则不区分,因此,调试证书和发布证书可以使用同一个证书请求文件(CSR)

一份签名证书会有四个文件:
1)p12 文件
2)csr 文件
3)p7b 文件
4)cer 文件

其中的p12文件、p7b文件和 cer 文件的保存路径,可以填写在如下的四个地方:
在这里插入图片描述
这样就完成了签名证书的手动配置。

三、多签名证书配置和使用

一个鸿蒙app,可以同时配置多份签名证书,这是为了适应不同类型设备的需要,例如手机端一个证书、平板端一个证书。这种多证书配置,会体现在项目根目录下的build-perofile.json5文件中:
在这里插入图片描述

如上所示,我同时配置了默认的调试证书和可选的发布证书。由此也可以发现,虽然多证书配置是为了多终端的需要,然而,再具体使用的过程中,完全可以灵活一点,特别是当app是团队开发时,每个开发者都可以配置上自己的调试证书,从而互不干扰的进行使用。

通常来说,不考虑不同终端的情况下,一个应用创建一个调试证书和一个发布证书就够了。因为,AppGallery Connect 平台支持将调试设备绑定到调试证书上:
在这里插入图片描述
所以,当你拥有多台手机作为调试设备时,采用手动配置调试证书的方式更为合适,因为,自动获取调试证书的方式,往往需要数据线连接一台手机,每换一台手机证书文件就需要重新生成,而目前 DevEco Studio 并不支持记住华为账号的登录状态,IDE 关闭重启后就需要重新登录,颇为费时。

四、多证书使用

在鸿蒙项目中,每个模块下都有一个build-profile.json5文件,只不过模块级别的该文件,要比项目级别的简略很多:
在这里插入图片描述
一般来说,我们需要关注的模块级别的 build-profile.json5 文件,只有 Entry 模块的,因为里面的 targets 标签的配置,与项目的多证书使用有关系:
在这里插入图片描述
在 DevEco Studio 如上图所示的位置,有一个按钮可以打开运行编译配置的修改对话框,可以根据编译运行所需选择不同的 Product、Build Mode 和 Module Target:
在这里插入图片描述
切换 Product 的同时,签名证书也会切换,而 Module Target 又可以和 Product 绑定:
在这里插入图片描述
所以,包括签名证书在内的一整套编译运行配置就这样完成了切换。


http://www.kler.cn/a/500781.html

相关文章:

  • Qt监控系统远程网络登录/请求设备列表/服务器查看实时流/回放视频/验证码请求
  • 计算机网络之---网络层的基本功能
  • 亚远景-ASPICE评估:汽车软件项目的过程能力评价
  • 西电-神经网络基础与应用-复习笔记
  • A3. Springboot3.x集成LLama3.2实战
  • B+ 树的实现原理与应用场景
  • 20250112面试鸭特训营第20天
  • 移动端屏幕分辨率rem,less
  • 前端开发:HTML常见标签
  • 慧集通(DataLinkX)iPaaS集成平台-业务建模之业务对象(二)
  • Linux权限管理(用户和权限之间的关系)
  • MATLAB语言的文件操作
  • 《分布式光纤测温:解锁楼宇安全的 “高精度密码”》
  • 如何在本地部署大模型并实现接口访问( Llama3、Qwen、DeepSeek等)
  • mark 一下conductor github
  • 【前端动效】原生js实现拖拽排课效果
  • 第二届城市建设与交通运输国际学术会议(UCT 2025)
  • Maven多模块项目如何灵活构建
  • 1.两数之和--力扣
  • 关于使用FastGPT 摸索的QA
  • Vue:Syntax Error: TypeError: this.getOptions is not a function的解决
  • 【Rust学习笔记】Rust 的所有权介绍
  • Python爬虫基础——selenium模块进阶(模拟鼠标操作)
  • Blender常规设置