openHarmony系统打包应用程序

简介: 经过一段时间的学习,打包应用并安装应该是最激动人心的一环了,所以今天带大家完成openHarmony应用的安装,正文即将开始~~

一、前言

经过一段时间的学习,打包应用并安装应该是最激动人心的一环了,所以今天带大家完成openHarmony应用的安装,正文即将开始~~

二、配置openHarmony应用签名信息

一般应用在安装之前都需要进行签名才可以正式安装,这部分主要是为了保证程序不被恶意修改而设置的,下图展示了签名的流程

在这里插入图片描述

1.生成密钥和证书请求文件

OpenHarmony应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。这里我们以DevEco Studio操作为例

  • 在主菜单栏点击Build > Generate Key and CSR

    点击create new 然后创建一个新的.p12密钥文件,这里需要注意一下密码格式,必须包含大小写字母、特殊符号、数字,不能使用一般的密码,类似123456(以前测试的时候经常这么做)

    在这里插入图片描述

  • 填写其他部分,填完如下,其他部分可以空着不填,然后点击next

    在这里插入图片描述

  • 生成证书文件

    同样需要自己选择一个存放csr文件的路径,它会自动生成文件,点击finish即可

    在这里插入图片描述

然后就是成功生成的提示

在这里插入图片描述

2.生成应用证书文件

使用生成密钥和证书请求文件中生成的证书请求文件,来生成应用签名所需的数字证书文件。生成方法如下:

进入DevEco Studio安装目录的 Sdk\toolchains\lib文件夹下(该SDK目录只能是OpenHarmony SDK,配置方法可参考配置OpenHarmony SDK),打开命令行工具,执行如下命令(如果keytool命令不能执行,请在系统环境变量中添加JDK的环境变量)。其中,只需要修改输入和输出即可快速生成证书文件,即修改 -infile指定证书请求文件csr文件路径, -outfile指定输出证书文件名及路径 - validity有效时间。(这里需要注意,我这里只是为了美观,才一行行的写,实际输入的时候需要连在一起,因为换行代表执行命令的意思,下面还有一个配置也是一样)

keytool -gencert 
-alias "OpenHarmony Application CA" 
-infile 路径+密钥文件名.csr 
-outfile 路径+数字证书文件名.cer  
-keystore OpenHarmony.p12 
-sigalg SHA384withECDSA 
-storepass 123456
-ext KeyUsage:"critical=digitalSignature" 
-validity  3650 -rfc

这里有几点需要注意

  • 这个命令只能在DevEco Studio安装目录的 Sdk\toolchains\lib文件夹下执行

    自带的这个终端快捷路径下执行即可 Terminal

    在这里插入图片描述

  • infile是指定的输入路径,outfile仍然是新建一个文件,输出路径自定义
  • 其他参数不能改,都是系统指定的(那个storepass的密码有点搞笑,我先笑一会)

3.生成应用profile文件

这个步骤是相似的,进入 Sdk\toolchains\lib目录下,打开命令行工具,执行如下命令,直接上命令

  • --out需要修改成自己的路径
  • --bundle-name 即包名需要换成自己的,
  • --permission这个选项如果没有的话空着就行,不要去掉(踩了大坑,私自去掉然后倒霉了,一直报错)
  • --distribution-certificate 换成自己的输出路径
  • --validity 有效期
java -jar provisionsigtool.jar 
sign --in UnsgnedReleasedProfileTemplate.json 
--out 路径+文件名.p7b 
--keystore OpenHarmony.p12 
--storepass 123456 
--alias "OpenHarmony Application Profile Release" 
--sigAlg SHA256withECDSA 
--cert OpenHarmonyProfileRelease.pem 
--validity 365 
--developer-id wresource 
--bundle-name 包名 
--permission 
--distribution-certificate 路径+文件名.cer

4.配置应用签名信息

在真机设备上调试前,需要使用到制作的私钥(.p12)文件、证书(.cer)文件和Profile(.p7b)文件对调试的模块进行签名。

打开 File > Project Structure,点击 Project > Signing Configs > debug窗口中,去除勾选“Automatically generate signing”,然后配置指定模块的调试签名信息。这里指定的是release的签名

在这里插入图片描述

  • Store File:选择密钥库文件,文件后缀为.p12,该文件为生成密钥和证书请求文件中生成的.p12文件。
  • Store Password:输入密钥库密码,该密码为生成密钥和证书请求文件中填写的密钥库密码保持一致。
  • Key Alias:输入密钥的别名信息,与生成密钥和证书请求文件中填写的别名保持一致。
  • Key Password:输入密钥的密码,与 Store Password保持一致。
  • Sign Alg:签名算法,固定为SHA256withECDSA。
  • Profile File:选择生成应用Profile文件中生成的Profile文件,文件后缀为.p7b。
  • Certpath File:选择生成应用证书文件中生成的数字证书文件,文件后缀为.cer。

上面这些参数都是比较容易填得,这些文件最好放在项目的目录下,便于查找

然后点击build即可完成hap的生成

在这里插入图片描述

之后在这个路径下可以找到生成的hap包

在这里插入图片描述

三、安装运行openHarmony应用

经历千辛万苦终于来到安装和运行openHarmony应用了,这里需要注意一点,openHarmony不能安装在普通手机上,只能安装在认证的开发板上,官方烧录文档如果有空的话下一次给大家带来烧录的教程

以下命令行安装均默认在连接完开发板时进行,需要进入Sdk\toolchains目录下进行运行

1.发送应用

hdc_std file send 本地路径.hap 远程接收路径.hap

2.安装应用

hdc_std install 应用名.hap

3.抓取日志

hdc_std hilog

四、总结

至此安装openHarmony应用已经完成了,可以在你的开发板上运行了,中间还是有点小曲折的,不过真的要吐槽一下,这个签名是真的复杂,需要手动生成两次文件,希望后面有更快捷的命令直接生成,下一篇见~~

目录
相关文章
|
3月前
|
Android开发
安卓SO层开发 -- 编译指定平台的SO文件
安卓SO层开发 -- 编译指定平台的SO文件
35 0
|
1月前
|
存储 Ubuntu Linux
制作一个嵌入式Linux的应用程序升级文件
制作一个嵌入式Linux的应用程序升级文件
16 2
|
3月前
|
前端开发 数据可视化 iOS开发
基于electron快速将任意网站打包成跨平台的桌面端软件
基于electron快速将任意网站打包成跨平台的桌面端软件
39 1
|
7月前
Qt-做一个快速打包插件(一键完成项目软件打包)
Qt-做一个快速打包插件(一键完成项目软件打包)
|
Java Linux 开发工具
RK3399平台开发系列讲解(系统编译篇)8.6、安卓开发环境的搭建及编译
RK3399平台开发系列讲解(系统编译篇)8.6、安卓开发环境的搭建及编译
147 0
|
前端开发 JavaScript API
openHarmony系统组件学习
openHarmony系统应用开发的组件很多,本篇文章仅以一个例子作为一个通用的学习方法,如果之前学过安卓开发,这部分内容应该除了语言,其他没有任何难度,本篇文章参考官网实现一个dialog组件,开始了~~
124 0
openHarmony系统组件学习
|
C# C++
nsis打包时候如何让附带的第三方软件静默安装
nsis打包时候如何让附带的第三方软件静默安装
263 0
nsis打包时候如何让附带的第三方软件静默安装
|
XML Android开发 数据格式
Ant打包安卓apk(5)-多渠道(配置)打包方案 ant脚本
不废话, 直接上货 <?xml version="1.0" encoding="UTF-8"?> <project name="MyProject" default="init" basedir="."> <description> simple example build file </description> <!-- 使用第三方的ant包,使ant支持for循环--> <taskdef resource="net/sf/antcontrib/antcontrib.properties"> <classpath> <pathelement l
222 0
|
Android开发 iOS开发 Windows
将您的Cordova应用程序打包
参考  https://github.com/MicrosoftDocs/cordova-docs/blob/master/articles/tutorial-package-publish/tutorial-package-publish-readme.md  Package Your Cordova App for Publishing to an App Store 为要定位的每个平台创建一个包。
2053 0