目录

HarmonyOS-签名打包并安装

HarmonyOS 签名打包并安装

1. HarmonyOS签名打包并安装

1.1. 基本概念

HarmonyOS应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,数字证书和Profile文件可通过申请发布证书和Profile文件获取。

申请数字证书和Profile文件前,首先需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。

密钥 :包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,格式为.p12,公钥和私钥对用于数字签名和验证。

证书请求文件 :格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。

数字证书 :格式为.cer,由华为AppGallery Connect颁发。

Profile文件 :格式为.p7b,包含HarmonyOS应用的包名、数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)等内容,每个应用包中均必须包含一个Profile文件。

1.1.1. 步骤

https://i-blog.csdnimg.cn/blog_migrate/75dd569dc6c8510babd11e2d9a93b5b3.png

1.1.2. 流程

https://i-blog.csdnimg.cn/blog_migrate/fee8434e17cef98b3097e591663c65da.png

1.2. 基本操作

1.2.1. 密钥和证书请求文件

使用DevEco Studio生成密钥和证书请求文件

(1) 在主菜单栏点击Build > Generate Key and CSR。

https://i-blog.csdnimg.cn/blog_migrate/e611f87716405cc37765852e9a825cbe.png

如果本地已有对应的密钥,无需新生成密钥,可以在Generate Key界面中点击下方的Skip跳过密钥生成过程,直接使用已有密钥生成证书请求文件。

(2) 在Key Store File中,可以点击Choose Existing选择已有的密钥库文件;如果没有密钥库文件,点击New进行创建。下面以新创建密钥库文件为例进行说明。

https://i-blog.csdnimg.cn/blog_migrate/a413f00f6c53ae4992f68f1b36fc3eda.png

https://i-blog.csdnimg.cn/blog_migrate/1d2e306bb0ad3ac73a40d2b82aa23f05.png

https://i-blog.csdnimg.cn/blog_migrate/a58de737773d64dcb3729fe9ccedeed7.png

1.2.1.1. 密钥(p12)

https://i-blog.csdnimg.cn/blog_migrate/b74a6b53f04d2eff5ea45226e45d63d7.png

密码必须至少包含8个字符,并包含以下任意两个字符:

1.小写字母:a-z

2.大写字母:A-Z

3.数字:0-9

4.特殊字符:“`~!@$%^ *()-=+\[{}];:”,.>/

https://i-blog.csdnimg.cn/blog_migrate/e2d938b0a8d0af5cb77adb39c9ca9766.png

名字和姓氏的值可以包含0到64个字符,仅包括大写字母、小写字母和空格。

1.2.1.2. 证书请求文件(csr)

https://i-blog.csdnimg.cn/blog_migrate/54bfed21ac057147d81ddf796f7c7c44.png

1.2.2. 发布证书和Profile文件

https://i-blog.csdnimg.cn/blog_migrate/fec83d21e037e82bc3690f4cf59156e0.png

通过生成的证书请求文件,向AppGallery Connect申请发布证书和Profile文件。

(1) 创建您的AGC项目;

(2) 创建HarmonyOS应用;

(3) 申请发布证书和Profile文件。

1.2.2.1. 应用发布证书

一个账号最多可申请1个发布证书,2个调试证书。

(1)登录 ,在网站首页中点击“用户与访问”。

https://i-blog.csdnimg.cn/blog_migrate/ae5cc199c6ab88a59150aab79080a14f.png

(2)在左侧导航栏点击“证书管理”,进入“证书管理”页面。

https://i-blog.csdnimg.cn/blog_migrate/b6dc165dd8cd8e4dbfb777a1d62f38a0.png

(3)点击“新增证书”,弹出“新增证书”窗口。

(4)在“新增证书”窗口中填写要申请的证书信息,点击“提交”。

https://i-blog.csdnimg.cn/blog_migrate/fc527a94ed64b8bcfab4aeac747f27f9.png

证书申请成功后,“证书管理”页面展示“证书名称”、“证书类型”,“失效日期”和“操作”列信息。

在“操作”列点击“下载”,可下载证书。

在“操作”列点击“废除”,且在弹出的“提示”窗口中点击“确认”,可废除证书。

说明:如证书已过期,“失效日期”列展示“已于YYYY-MM-DD过期”。您可以下载或废除过期证书。

https://i-blog.csdnimg.cn/blog_migrate/4f28c7ffaa3f421d6bec78cd73716215.png

https://i-blog.csdnimg.cn/blog_migrate/011017c299931166f560addbd804eb8f.png

1.2.2.2. 添加设备

https://i-blog.csdnimg.cn/blog_migrate/77437caae69dab5db1676cabd7716437.png

1.2.3. Profile文件

一个账号最多可申请100个Profile文件。

(1)登录AppGallery Connect网站,在网站首页中点击“我的项目”。

(2)找到您的项目,点击您创建的HarmonyOS应用。

(3)在左侧导航栏选择“HarmonyOS应用 > HAP Provision Profile管理”,进入“管理HAP Provision Profile”页面。

https://i-blog.csdnimg.cn/blog_migrate/ca7c3cebc0bc24b190ffb40ca909205e.png

(4)点击右上角“添加”,弹出“HarmonyAppProvision信息”窗口。

(5)在弹出的“HarmonyAppProvision信息”窗口中添加Profile。

https://i-blog.csdnimg.cn/blog_migrate/eeebaceaa6ff68c92341ff0e7f5dc673.png

(6)发布Profile申请成功后,“管理HAP Provision Profile”页面展示“名称”、“类型”、“证书”、“失效日期”和“操作”列信息。

https://i-blog.csdnimg.cn/blog_migrate/d0ec491f146cfd0b5ab315a3fd560010.png

(7)在“操作”列点击“下载”,可下载Profile文件。

(8)在“操作”列点击“删除”,且在弹出的“提示”窗口中点击“确认”,可删除Profile文件。

1.2.4. 打包

1.2.4.1. 签名配置

DevEco Studio 中 File >Project Structure > project > Signing Configs进行配置

https://i-blog.csdnimg.cn/blog_migrate/1f86fe7ab77e61fe60d4289fda368bcc.png

1.2.4.2. 位置

https://i-blog.csdnimg.cn/blog_migrate/447e47d4536f095a5ba99a12d53dffce.png

app包仅用于上架应用市场,是最终release上架包;hap包为调试版本,调试应用过程中可以使用hap进行运行,同时app包无法通过hdc命令安装,hap调试包可通过hdc app install xxx.hap进行安装。

https://i-blog.csdnimg.cn/blog_migrate/ac8829f3b9a4d41fbbe83e8ebcb8fcef.png

1.2.5. 获取设备UDID

https://i-blog.csdnimg.cn/blog_migrate/1b74d99a761e57951489d239c5f2d132.png

https://i-blog.csdnimg.cn/blog_migrate/4dec50a8a5d3800af4071c7bc4a84f2f.png

https://i-blog.csdnimg.cn/blog_migrate/fac75f21808ca856cf80e599467d3a55.png

https://i-blog.csdnimg.cn/blog_migrate/5cc2b0ff4bfabaa31d4d1f2be83f67af.png

1.2.5.1. 找到SDK的位置

(1)方法1

在主菜单栏点击Tool > SDK Manager。

https://i-blog.csdnimg.cn/blog_migrate/7a4467df8de2a340934c5b2023d76ad0.png

(2)方法2

https://i-blog.csdnimg.cn/blog_migrate/0aa1a9ceb41e40044653d66e6d55d703.png

1.2.5.2. 找到hdc.exe

https://i-blog.csdnimg.cn/blog_migrate/a14edb9c725f68784ac9a0c8520e1de9.png

1.2.5.3. 查找

根据命令行查找

hdc.exe shell bm get -udid

https://i-blog.csdnimg.cn/blog_migrate/f1d1ceb4149af85f01ae017fdb1d20cd.png

1.2.5.4. hdc命令安装hap包

https://i-blog.csdnimg.cn/blog_migrate/a67fc1e2936382e7150212afaaea8468.png

https://i-blog.csdnimg.cn/blog_migrate/d6a473027c2d18eee62de58546acb09c.png

(1)第一步

cd D:\Harmoney\Sdk\toolchains

(2)第二步

hdc file send D:\Harmoney\JavaProject\Sdqlet\entry\build\outputs\hap\debug\entry-debug-rich-signed.hap /sdcard/zzs/entry-debug-rich-signed.hap

(3)第三步

hdc shell bm install -p /sdcard/zzs/

1.3. 签名打包所需文件

https://i-blog.csdnimg.cn/blog_migrate/a4df3d37fdbcb008e10ec2bbcd1aed59.png

1.4. 流程操作

1.4.1. 第一步

https://i-blog.csdnimg.cn/blog_migrate/47c041395049aa06b302b5c321f4123c.png

1.4.2. 第二步:创建.p12文件,点击New如果有的话就Choose Existing

https://i-blog.csdnimg.cn/blog_migrate/2cb764a4cd7137fdbccdc5fbbfbda04d.png

填好下面信息

https://i-blog.csdnimg.cn/blog_migrate/16130c37bd9968c920a8d192a6d414fe.png

点击Next进入到下面界面

https://i-blog.csdnimg.cn/blog_migrate/ebdfff9586abef5b4f04ad77f063c2fe.png

开始生成csr文件如下图

https://i-blog.csdnimg.cn/blog_migrate/b503f1ecf9a35d9f704dd23d6bfff412.png

点击OK–>Finish 文件保存在了下面目录

https://i-blog.csdnimg.cn/blog_migrate/24781859ad677342c8d4ce08cef7ad25.png

https://i-blog.csdnimg.cn/blog_migrate/a6d1da62b7b76e3d354a582f82aea1e6.png

1.4.3. 第三步 访问华为开发者平台,登录开发者账号,进入控制台

华为开发者平台地址:

创建应用

https://i-blog.csdnimg.cn/blog_migrate/c4f2a8e82339aa319a46231f326f335c.png

点击证书

https://i-blog.csdnimg.cn/blog_migrate/e67dcc1d96f35730c9a48d5e23c1662b.png

https://i-blog.csdnimg.cn/blog_migrate/acaf1aaca8f116cfffface0c61df7f55.png

https://i-blog.csdnimg.cn/blog_migrate/8a3c6515a8bc3ba1f1a01cf484d89c86.png

这个时候我们就有.p12文件和一个.cer文件

1.4.4. 第四步:生成.p7文件

点击profile项

https://i-blog.csdnimg.cn/blog_migrate/61654643110759702a392313f0f96fc9.png

https://i-blog.csdnimg.cn/blog_migrate/f7466d1fdf1b1d0d4117e9d392941b4d.png

https://i-blog.csdnimg.cn/blog_migrate/5e58a41d76b3d7ed7c74bf9db859732f.png

https://i-blog.csdnimg.cn/blog_migrate/4cc84840c9d24b349be81604f7f71a87.png

https://i-blog.csdnimg.cn/blog_migrate/5500711d97632519760d574ac8f682f4.png

1.4.5. 第五步,打开鸿蒙开发工具

https://i-blog.csdnimg.cn/blog_migrate/351e19c3960a89b691ad8796b5cc26a5.png

依次填好下面参数 点击OK

https://i-blog.csdnimg.cn/blog_migrate/28175d47bd06da4571cf8c9399286c27.png

在工程的这个文件里,填写签名配置,相当于之前Android的debug,release

https://i-blog.csdnimg.cn/blog_migrate/ba2d2809848813b5be9e12c429791ecf.png

打包 Build–>Build Hap(s)

app包仅用于上架应用市场,是最终release上架包;hap包为调试版本,调试应用过程中可以使用hap进行运行,同时app包无法通过hdc命令安装,hap调试包可通过hdc app install xxx.hap进行安装。

https://i-blog.csdnimg.cn/blog_migrate/467febac0d071f52ddb4764b85a10a92.png

生成.hap文件

https://i-blog.csdnimg.cn/blog_migrate/5bb906e1e23d03469dda591b109d4e4a.png

然后就是安装haps,先配置一下hdc环境变量,相当于Android的 adb

来到开发工具安装目录,我的是在这里

https://i-blog.csdnimg.cn/blog_migrate/2648a0f2972deff5024994ee29ee2c94.png

添加好环境变量执行安装命令

hdc install xxx.hap