当前位置:网站首页>openharmony标准系统之app手动签名
openharmony标准系统之app手动签名
2022-06-11 12:23:00 【赵开心先森】
今天在标准系统上使用DevEco Studio 3.0 Beta2开发app时,想直接在真机上运行,结果提示吐下信息,
App Launch
Install Failed: [Info]App install path:D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\entry\build\outputs\hap\debug\entry-debug-standard-ark-unsigned.hap, queuesize:0, msg:error: failed to install bundle. error: no signature file.
AppMod finish
这种情况是因为没有给app进行签名导致的,现在按照官方文档进行签名操作,首先如下图,进入Build去生成证书请求文件。
进入如上图展示的选项后,然后选择如下图所示的选项。
然后出现如图所示界面,我们填写这个就可。
点击此箭头进入选择保存路径以及设置名字,如下图展示
进入后的界面如下图所示,选择正确的路径以及填写名字
然后点击OK就行,然后再在如下图所示界面填写密码,注意密码格式如下,

我这里用的是zxy122456
填写完成后点击OK完成创建,然后接着填写如下信息。
- Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
- Password:密钥对应的密码,与密钥库密码保持一致,无需手动输入。
- Validity:证书有效期,建议设置为25年及以上,覆盖应用/服务的完整生命周期。
- Certificate:输入证书基本信息,如组织、城市或地区、国家码等。

然后点击箭头所指示的Next即可,然后会出现如下界面
这里需要设置我们的路径,点击箭头所指选项,
选择保存的路径,设置名字,然后点击OK。
回到上图所示界面后点击Finish即可,会提示如下图所示信息,点击ok即可。
创建成功如下所示多了几个文件。
接着需要生成证书文件,步骤如下,进入DevEco Studio安装目录的Sdk\toolchains\lib文件夹下(该SDK目录只能是OpenHarmony SDK),比如我这里是如下图路径,
将如上图所示文件全部拷贝到我们的key目录
然后找到如下图所示的路径,因为我们的keytool工具没有添加到系统环境变量,所以需要如此操作
打开此路径的cmd,然后执行如下命令
keytool -gencert -alias “OpenHarmony Application CA” -infile D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\Key\HelloWorld.csr -outfile D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\Key\HelloWorld.cer -keystore D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\Key\OpenHarmony.p12 -sigAlg SHA384withECDSA -storepass 123456 -ext KeyUsage:“critical=digitalSignature” -validity 3650 -rfc - alias:用于签发证书的CA私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
- infile:证书请求(CSR)文件的路径。
- outfile:输出证书链文件名及路径。
- keystore:签发证书的CA密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。请注意,该OpenHarmony.p12文件并不是使用DevEco Studio生成证书请求文件中生成的.p12文件。
- sigAlg:证书签名算法,该参数不能修改。
- storepass:密钥库密码,密码为123456,该参数不能修改。
- ext:证书扩展项,该参数不能修改。
- validity:证书有效期,自定义天数。
- rfc:输出文件格式指定,该参数不能修改。
执行完成如下图。
生成如下图所示的文件就算成功。
然后再使用如下命令生成Profile文件
java -jar D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\Key\provisionsigtool.jar sign --in D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\Key\UnsgnedReleasedProfileTemplate.json --out D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\Key\HelloWorld.p7b --keystore D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\Key\OpenHarmony.p12 --storepass 123456 --alias “OpenHarmony Application Profile Release” --sigAlg SHA256withECDSA --cert D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\Key\OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name com.mc.helloworld --distribution-certificate D:\APP\HarmonyOS\Project\openHarmonyProject\standard\HelloWorld\Key\HelloWorld.cer
provisionsigtool:Profile文件生成工具,文件在OpenHarmony SDK的Sdk\toolchains\lib路径下。
in:Profile模板文件所在路径,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。
out:输出的Profile文件名和路径。
keystore:签发证书的密钥库路径,OpenHarmony密钥库文件名为OpenHarmony.p12,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。
storepass:密钥库密码,密码为123456,该参数不能修改。
alias:用于签名Profile私钥别名,OpenHarmony社区CA私钥存于OpenHarmony.p12密钥库文件中,该参数不能修改。
sigAlg:证书签名算法,该参数不能修改。
cert:签名Profile的证书文件路径,文件在OpenHarmony SDK中Sdk\toolchains\lib路径下,该参数不能修改。
validity:证书有效期,自定义天数。
developer-id:开发者标识符,自定义一个字符串。
bundle-name:填写应用包名。
permission:可选字段,如果不需要,则可以不用填写此字段;如果需要添加多个受限权限,则如示例所示重复输入。受限权限列表如下:ohos.permission.READ_CONTACTS、ohos.permission.WRITE_CONTACTS。
distribution-certificate:生成应用证书文件中生成的证书文件。
然后就是配置使用签名信息,首先进入如下所示选项
然后选择如下图所示选项

这里填写信息说明如下:
- Store File:选择密钥库文件,文件后缀为.p12,该文件为使用DevEco Studio生成证书请求文件中生成的.p12文件。
- Store Password:输入密钥库密码,该密码为使用DevEco Studio生成证书请求文件中填写的密钥库密码保持一致。我这里使用zxy1122456
- Key Alias:输入密钥的别名信息,与使用DevEco Studio生成证书请求文件中填写的别名保持一致。我这里是HelloWorld_debug
- Key Password:输入密钥的密码,与Store Password保持一致。zxy1122456
- Sign Alg:签名算法,固定为SHA256withECDSA。
- Profile File:选择生成应用Profile文件中生成的Profile文件,文件后缀为.p7b。
- Certpath File:选择生成证书文件中生成的数字证书文件,文件后缀为.cer。
- 然后点击右下角OK即可。
边栏推荐
- netstat 命令详解
- Redis data type Daily use Scenarios
- Flink spark vs. Flink
- Acwing50+acwing51 weeks +acwing3493 Maximum sum (open)
- Seckill multi-level cache ----- product details page
- CMD of Jerry's AI protocol_ SET_ BLE_ Format of visibility command [chapter]
- MCtalk创业声音丨博学明辨:兴趣社交,给退休前后老年朋友的「小而美」空间
- Master-slave replication of MySQL
- Progress bar loading
- Flink physical partition (random partition, polling partition, rescaling partition, broadcast, global partition, custom partition)
猜你喜欢

What are the ways for badminton halls to generate income

9. Parler de threadlocal

ftp服务器:serv-u 的下载及使用

Splunk certificate expired, making kV store unable to start

秒杀多级缓存-----商品详情页

1. Thread Basics

11. Synchronized and lock escalation

Acwing50+acwing51 weeks +acwing3493 Maximum sum (open)

Meichuang technology data security management platform won the "leading scientific and Technological Achievement Award" of 2022 digital Expo

8、原子操作类之18罗汉增强
随机推荐
Jerry's aicmd_ SET_ BT_ Addr command format [chapter]
mysql的主从复制
Ettercap sniffing of man in the middle attack
After Oracle deletes a user, it can still use the user to log in
Wechat authorization to obtain mobile phone number
Progress bar loading
Development of TRX wave field chain pledge liquidity mining system
Record a CODIS memory cleanup
This is our golden age
场馆坪效这么低?关键在这两方面
1、线程基础知识
14. Course summary and review
C#事件总线
netstat 命令详解
ftp服務器:serv-u 的下載及使用
leetcode-59. Spiral matrix II JS
室内场馆现代化的三大要点
经营体育馆有哪些要素?
2. Completablefuture
Wireshark packet capturing and debugging RTSP