目录
前言
在HarmonyOS应用开发过程中,签名信息配置是一个关键步骤,它确保了应用的安全性和唯一性,签名信息涉及到应用能否正常上架,所以说正确配置签名信息对于应用上架、更新和用户数据保护至关重要。而且鸿蒙官方为了确保鸿蒙应用(包括元服务)的完整性,HarmonyOS通过数字证书和Profile文件对鸿蒙应用进行管控,只有签名后的鸿蒙应用才能安装到真机上运行。那么本文就来详细介绍在HarmonyOS开发中如何配置签名信息,包括生成签名证书、配置签名文件以及在开发环境中应用签名的过程,方便查阅使用。
签名信息的重要性
在HarmonyOS中,签名信息用于验证应用的身份和完整性,它主要有以下几个重要的作用:
- 安全性:确保应用在传输和安装过程中未被篡改。
- 唯一性:为应用开发者提供唯一的标识,防止应用被冒充。
- 权限管理:控制应用的权限,确保应用只能访问授权的数据和资源。
签名的方式
为了确保鸿蒙应用/元服务的完整性,HarmonyOS通过数字证书和Profile文件对元服务进行管控,只有签名后的鸿蒙应用/元服务才能安装到真机上运行。
华为提供了两种签名方式:
- 自动化签名
- 手动签名
下文会专门介绍这两种签名方式的具体操作步骤。
自动化签名
这里还是要强调一下,至于是选择自动化签名还是手动签名,一切根据自己的实际情况为主。先来介绍一下自动化签名的详细操作步骤,大概分为两步操作,具体如下所示。
1、连接真机
首先需要连接真机操作,真机连接成功后如下图所示:
需要注意的是:如果同时连接多个设备,则使用自动化签名时,会同时将这多个设备的信息写到证书文件中在,这一点要记住。
2、选择
真机链接成功之后,就是去操作菜单选择。打开菜单,在菜单中选择"File > Project Structure",打开界面之后在"Project Structure"界面导航选择"Project",选择"Signing Configs"页签,选择"Debug"页签,勾选"Automatically generate signature" 。但是如果未登录,需要先点击"Sign In"进行登录,具体如下所示:
在完成签名完成之后,界面信息如下所示:
手动签名
上面的自动化签名是不是很简单,只需两步就可搞定,但是手动签名比较复杂,如果无法联网,不然不推荐使用这种签名方式。在开始使用手动签名之前,需要先了解如下几个基本概念:
- 密钥:包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,格式为.p12,公钥和私钥对用于数字签名和验证。
- 证书请求文件:格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。
- 数字证书:格式为.cer,由AppGallery Connect颁发。
- Profile文件:格式为.p7b,包含元服务的包名、数字证书信息、描述元服务允许申请的证书权限列表,以及允许元服务调试的设备列表(如果元服务类型为Release类型,则设备列表为空)等内容,每个元服务包中均必须包含一个Profile文件。
(一)生成密钥和证书请求文件
1、首先打开菜单,在菜单中选择"Build > Generate Key and CSR"。
2、然后找到Key Store File可以点击"Choose Existing"选择,如果已有的密钥库文件(存储有密钥的.p12文件),跳转到下面的步骤4继续配置;如果没有密钥库文件,点击"New",跳转到下面的步骤3进行创建。
3、找到"Create Key Store"界面,填写密钥库信息后,点击"OK"。下面是注意事项:
- Key Store File:设置密钥库文件存储路径,并填写p12文件名。
- Password:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
- Confirm Password:再次输入密钥库密码。
4、打开"Generate Key and CSR"界面,然后继续填写密钥信息后,接着点击"Next"。下面是注意事项:
- Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
- Password:密钥对应的密码,与密钥库密码保持一致,无需手动输入。
- Validity:证书有效期,建议设置为2025年及以上,覆盖元服务的完整生命周期。
- Certificate:输入证书基本信息,比如组织、城市或地区、国家码等,这与iOS、Android的设置差不多。
5、打开"Generate Key and CSR"界面,然后设置CSR文件存储路径和CSR文件名,最后点击"Finish"。
在CSR文件创建成功后,将在存储路径下获取生成密钥库文件(.p12)和证书请求文件(.csr)。
(二)申请调试证书
关于申请调试证书,大概分为四步,具体如下所示:
1、登录AppGallery Connect:AppGallery Connect ,登录之后如下图所示:
2、然后在左侧导航栏选择"证书管理",进入"证书管理"页面,点击"新增证书"。具体如下所示:
3、在弹出"新增证书"界面填写相关信息后,点击"提交"。
|---------------|--------------------------|
| 参数 | 说明 |
| 证书名称 | 不超过100个字符。 |
| 证书类型 | 选择"调试证书"。 |
| 上传证书请求文件(CSR) | 上传生成密钥和证书请求文件时获取的.csr文件。 |
4、证书申请成功后,"证书管理"页面展示生成的证书内容。
- 点击"下载"将生成的证书保存至本地。
- 每个帐号最多申请2个调试证书,如果证书已过期或者无需使用,点击"废除"即可删除证书。
(三)注册调试设备
1、注册调试设备依然需要登录AppGallery Connect:AppGallery Connect ,然后点击"用户与访问",具体如下所示:
2、进入之后,点击左侧导航栏选择"设备管理/测试账号",进入"设备管理/测试账号"页面,具体如下所示:
- 点击"添加设备/新增",参考下表填写设备信息,单个添加设备。
- 点击"批量添加设备",下载模板,参考下表填写多条设备信息,上传文件,批量添加设备。
|------|---------------------------------------------|
| 参数 | 说明 |
| 名称 | 不超过100个字符。 |
| 类型 | 选择需要调试设备的类型。 |
| UDID | 设备唯一标识符,是由字母和数字组成的64位字符串。您可在对应的调试设备上获取UDID。 |
关于手机获取UDID方式,具体如下所示:
- 打开"设置 > 关于手机",多次点击版本号,打开开发者模式。
- 打开"设置 > 系统和更新",在最下方找到"开发人员选项",打开"USB调试"开关。
- 使用PC连接手机后,打开命令行工具,进入HDC目录(一般为:HarmonyOS SDK安装目录/toolchains/{版本号}),然后输入hdc shell bm get --udid命令,获取设备的UDID即可
3、设备注册成功,即可在"设备管理"页面查看到设备信息。
(四)申请调试Profile文件
1、登录AppGallery Connect:AppGallery Connect ,选择"我的项目",具体如下所示:
2、找到对应项目,点击项目卡片中需要调试的元服务。
3、导航选择"HarmonyOS应用 > HAP Provision Profile管理",进入"管理HAP Provision Profile"页面,点击"添加"。
4、在"HarmonyAppProvision信息"界面填写相关信息,点击"提交",具体设置参数如下所示:
|--------|---------------------------------------------------------------------|
| 参数 | 说明 |
| 名称 | 不超过100个字符。 |
| 类型 | 选择"调试"。 |
| 选择证书 | 选择申请的调试证书。 |
| 选择设备 | 选择注册的调试设备。 |
| 申请受限权限 | 若软件包因特殊场景要求使用受限权限,如读取、 添加、移除或更改联系人数据等,务必在此处进行申请,否则元服务将无法在调试设备上安装调试。 |
5、申请成功,即可在"管理HAP Provision Profile"页面查看Profile信息。点击"下载",将文件下载到本地,具体如下所示:
(五)配置签名信息
1、打开DevEco Studio,菜单选择"File > Project Structure",进入"Project Structure"界面。
2、导航选择"Project",点击"Signing Configs"页签。去除勾选的"Automatically generate signature",填写相关信息后,点击"OK",具体需要选择的文件释义如下所示:
- Store File:密钥库文件,选择生成密钥和证书请求文件
- Store Password:密钥库密码,需要与生成密钥和证书请求文件
- Key alias:密钥的别名信息,需要与生成密钥和证书请求文件
- Key password:密钥的密码,需要与生成密钥和证书请求文件
- Sign alg:固定设置为"SHA256withECDSA"。
- Profile file:选择申请调试Profile文件
- Certpath file:选择申请调试证书
结束语
通过上文对于HarmonyOS开发中签名信息配置的详细介绍,我们不难看出签名信息配置是HarmonyOS应用开发中的一个重要环节。签名不仅是保护应用安全的关键,也是确保应用能够顺利发布和更新的前提,通过生成签名证书、配置签名文件和正确签名应用,可以确保应用的安全性和唯一性。随着技术的不断演进,签名和安全机制可能会有所变化,所以我们需要持续关注HarmonyOS的最新安全实践和更新,以确保应用始终保持最新和最安全的配置,还有就是开发者也应该培养良好的安全意识,从设计和编码阶段就开始考虑应用的安全性,与此同时应遵循官方文档和最佳实践,确保签名过程的正确性和应用的顺利上架。最后,希望本文能够为大家提供实用的指导和帮助,让大家能够更加自信地进行应用开发和签名配置,让我们一起期待并共同构建一个更加安全、可靠和繁荣的HarmonyOS应用生态系统!