02鸿蒙APP真机运行及证书签名打包

2023-12-13 19:01:43

目录

1、真机运行

1.1、运行安装错误

Failure[INSTALL_PARSE_FAILED_USESDK_ERROR] 

原因:就是APP的高版本API和真机的低版本API不兼容,导致运行安装到真机上失败,高版本API9不能兼容鸿蒙3.0的真机系统。

目前只有一台华为真机,其鸿蒙系统版本是3.0.0.168,而我安装的sdk版本是最新的,如下面的图所示:
在这里插入图片描述
在这里插入图片描述

此时看到的现象是:Device设备能选到,点击执行安装APP时,就报错INSTALL_PARSE_FAILED_USESDK_ERROR ,执行hdc list targets 命令始终是[Empty]。

hdc指令可能会遇到error: no devices/emulators found 这种错误,插拔一下真机设备,很可能就是连接没成功,反复多试几次,直至成功,找到驱动,获取真机的API版本,如下图所示:

在这里插入图片描述

确认了华为真机鸿蒙系统的API版本是6,我想继续在这台真机上安装调试APP,怎么办呢?

1.2、解决方案:

第一步:安装兼容真机的sdk版本2.2.0(API6),如下图所示:

在这里插入图片描述

第二步:新建一个API6的工程项目

不能直接修改/build-profile.json5配置文件中的版本,因为会报错。
在这里插入图片描述

一定要注意,API6开发语言变成JS和JAVA,并没有ArkTs,所以这是比较坑的地方。对老版本鸿蒙系统不是很礼貌。

第三步:运行API6创建的工程项目

在这里插入图片描述
运行失败,右下角弹出了,没签名无法安装的错误提示。

第四步:配置Debug签名

点击右下角的"open signing configs"按钮,进入之后,点击“Sign in”按钮,如下图所示:
在这里插入图片描述
会自动跳转到华为官方网站,登录华为账号(没账号,自己去申请开发者账号,这是门槛),授权登录,最后直到弹出如下界面:

在这里插入图片描述

根据指示回到IDE,看到新弹出一个界面,如下图所示:
在这里插入图片描述
点击“Agree”按钮,ide编译器自动生成了一个Debug签名文件,如下图所示:

在这里插入图片描述

其中Release的签名还没有,后面我们再来处理,继续点击“OK”按钮,窗口自动关闭。

第五步:再次运行

继续点击运行安装到真机按钮“Run entry”,运行成功,应用已被安装到真机上,如下图所示:
在这里插入图片描述

1.3、安装小结

  • 鸿蒙3.0的系统安装真机运行,最重要的就是检查API的版本,高版本是不兼容低版本的API;
  • HDC指令获取真机API版本,经常会出现无法找到驱动设备,所以要反复尝试插拔连接好,必要时可以hdc kill一下;
  • 必须依赖华为开发者账号,并根据引导自动获取Debug签名信息;
  • 低版本的API并不支持ArtTS语言开发。

2、正式版签名并打包

签名APP时需要4个关键的签名相关文件,它们是.p12、.csr、.p7b、.cer,构建这些文件还是有点繁琐的,这4个文件怎么用,我们后面的步骤再说,先磨刀后砍柴。

  • .p12:密钥,格式为.p12,包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,公钥和私钥对用于数字签名和验证。
  • .csr:证书请求文件,格式为.csr,全称为Certificate Signing
    Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。
  • .p7b:Profile文件,格式为.p7b,包含HarmonyOS应用的包名、数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)等内容,每个应用包中均必须包含一个Profile文件,分为调试Profile和发布Profile。
  • .cer:数字证书,格式为.cer,由华为AppGallery Connect颁发,分为应用调试证书和应用发布证书。

这个4个文件从哪里来呢?接下来就来看看怎么创建。

2.1、创建p12和csr文件

.p12和.csr文件是本地文件,所以合并来讲,其有两种方式实现,在IDE中创建和通过Cmd命令来创建。

2.1.1、第一种:在IDE中创建签名文件

第一步:先点击Build/Generate Key and CSR菜单

如下图所示:
在这里插入图片描述

第二步:选择key store file文件

可以看到生成CSR之前还需要选择一个*.p12的文件,由于没有,所以点击New,但是还是需要一个key store file 文件,如下图所示:
在这里插入图片描述

第三步:设置.p12文件存储的位置及密码

注意在上图中的第二处,是让你选择p12文件存储的目录及文件名,如下图所示,
在这里插入图片描述

第四步:填写必要的信息

点击OK按钮,填写必要的信息,如下图所示:
在这里插入图片描述
点击Next按钮就会在D:根目录下生成my_ide_key.p12两个文件,但遗憾的是,并不会那么顺利,会报错,如下图所示:
在这里插入图片描述
原因是D:\盘是我的系统盘,权限可能不足,我存储到E:\my_ide_key.p12这个路径,问题顺利解决,弹出新的界面,如下图所示

在这里插入图片描述

第五步:查看p12和csr文件

点击Finish按钮,到E:\盘根目录下查看生成的.p12 、.csr两个文件,如下图所示:
在这里插入图片描述

2.1.2、通过Cmd命令来生成签名文件

第一步:生成P12密钥文件

在Cmd命令行工具中,执行下面的指令来生成:

keytool -genkeypair -alias "my_second_application" -keyalg EC -sigalg SHA256withECDSA -dname "C=CN,O=HUAWEI,OU=HUAWEI IDE,CN=my_second_application"  -keystore d:\\mysecondapplicationkey.p12 -storetype pkcs12 -validity 9125 -storepass 12345678Asd -keypass 12345678Asd

其中“my_second_appliction”是别名、"d:\mysecondapplicationkey.p12"是p12文件保存的路径、“12345678Asd”是其密码(必须要包含数字及大小写字母),都可以自己修改。

如果遇到下面这种错误,请搜索cmd.exe并使用管理员权限运行即可解决

keytool 错误: java.io.FileNotFoundException: d:\mysecondapplicationkey.p12 (客户端没有所需的特权。)

最终cmd命令执行结果如下就表示生成p12文件成功,如下图所示:

在这里插入图片描述

在D盘就找到了我们千辛万苦需要的p12文件,如下图所示:
在这里插入图片描述

第二步:生成csr文件

在cmd命令行工具中,执行如下命令:

keytool -certreq -alias "my_second_application" -keystore d:\\mysecondapplicationkey.p12 -storetype pkcs12 -file d:\\mysecondapplicationkey.csr

执行结果,如下图所示:

在这里插入图片描述

必须先生成p12文件,然后在p12文件的基础上再生成.csr文件,因为生成csr时需要输入p12的密钥库口令,也就是前面设置的"12345678Asd"。

第三步:查看生成的p12和csr文件

打开电脑D:/盘根目录,最终生成的两个签名需要的文件已经具备,如下图所示:
在这里插入图片描述

2.2、创建cer文件

这个文件申请有一个强制要求,就是必须要在AppGallery Connect上创建一个应用,然后才能获取得到.cer文件。
AppGallery Connect访问地址:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/
,进入此网址后,如下图所示:
在这里插入图片描述

点击“用户与访问”,弹出界面,如下所示:
在这里插入图片描述
点击“新增证书”按钮,填写能填的信息,如下图所示:
在这里插入图片描述

点击”选取“按钮,选择前面步骤中在本地创建好的D:/mysecondapplicationkey.csr这个文件,点击提交,如下图所示:
在这里插入图片描述

提交之后,就生成了我们发布证书,点击证书下载,即可获得.cer文件,如下图所示:
在这里插入图片描述
到此目前获得了3个文件,如下图所示:
在这里插入图片描述

2.3、创建p7b文件

第一步:回到AppGallery connect的主界面,如下图所示:

在这里插入图片描述

第二步:点击”我的项目“,进入界面,如下图所示:

在这里插入图片描述

第三步:点击”添加项目“,输入项目名称,并点击”创建并继续“按钮,如下图所示:

在这里插入图片描述

第四步:可手动关闭为此项目启动分析服务,减少步骤,如下图所示:

在这里插入图片描述

第五步:点击”完成“之后,开始为此项目添加应用,如下图所示:

在这里插入图片描述

第六步:添加应用

点击”添加应用“按钮,输入必填信息,如下图所示:

在这里插入图片描述

包名可以从config.jsonde的bundleName值中获取,如下图所示:
在这里插入图片描述
创建应用时,可能会遇到软件包名(com.example.mysecondapplication)这个包名已存在的问题,巨坑啊,在本地项目中改一下包名:
直接在本地项目中全局替换包名,同时要去修改项目文件的路径,与包路径保持一致,如下图所示:
在这里插入图片描述

替换之后可能会安装报错,如下图所示:
在这里插入图片描述

因为更改了包名,还得去重新生成一下debug调试的Key信息,如下所示:
在这里插入图片描述
勾选上图中的选项就会重新走一次,debug模式的key信息,再次Run按钮,就会在真机上重新安装一个新的包名的APP了。

第七步:添加应用成功后,添加HAP Provision Profile,如下图所示:

在这里插入图片描述

第八步:下载p7b证书,如下图所示:

在这里插入图片描述

第九步:查看证书,如下图所示:

在这里插入图片描述

到此文件已经准备完毕。

3、配置Release签名信息

打开项目的Project Structure界面,选择Siging Configs菜单,配置好准备的文件信息,如下图所示:
在这里插入图片描述
点击OK完成配置,会自动关闭此界面,就可以去打出签名包了。

4、打包hap和app

点击Build菜单,即可打包hap和App,如下图所示:
在这里插入图片描述

签名后的应用,打包出来的结果如下图所示:

在这里插入图片描述

5、总结

整个签名到打包的过程确实很漫长,4个签名相关的文件创建就要费九牛二虎之力,还需要要开发者账号才可以做鸿蒙开发,所以门槛还是存在,务必要注意cmd工具在使用时需要运行管理员权限再执行,hdc命令也是一样,遇到失败多尝试,总会解决。

6、参考链接

API兼容问题:https://developer.huawei.com/consumer/cn/forum/topic/0203136649588923577
证书申请:https://developer.huawei.com/consumer/cn/doc/app/agc-help-harmonyos-releaseapp-0000001126380068






原创不易,求个关注。

在这里插入图片描述

微信公众号:一粒尘埃的漫旅
里面有很多想对大家说的话,就像和朋友聊聊天。
写代码,做设计,聊生活,聊工作,聊职场。
我见到的世界是什么样子的?
搜索关注我吧。

公众号与博客的内容不同。

文章来源:https://blog.csdn.net/huangbin123/article/details/134965518
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。