赞
踩
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,怎么办呢?
不能直接修改/build-profile.json5配置文件中的版本,因为会报错。
一定要注意,API6开发语言变成JS和JAVA,并没有ArkTs,所以这是比较坑的地方。对老版本鸿蒙系统不是很礼貌。
运行失败,右下角弹出了,没签名无法安装的错误提示。
点击右下角的"open signing configs"按钮,进入之后,点击“Sign in”按钮,如下图所示:
会自动跳转到华为官方网站,登录华为账号(没账号,自己去申请开发者账号,这是门槛),授权登录,最后直到弹出如下界面:
根据指示回到IDE,看到新弹出一个界面,如下图所示:
点击“Agree”按钮,ide编译器自动生成了一个Debug签名文件,如下图所示:
其中Release的签名还没有,后面我们再来处理,继续点击“OK”按钮,窗口自动关闭。
继续点击运行安装到真机按钮“Run entry”,运行成功,应用已被安装到真机上,如下图所示:
签名APP时需要4个关键的签名相关文件,它们是.p12、.csr、.p7b、.cer,构建这些文件还是有点繁琐的,这4个文件怎么用,我们后面的步骤再说,先磨刀后砍柴。
这个4个文件从哪里来呢?接下来就来看看怎么创建。
.p12和.csr文件是本地文件,所以合并来讲,其有两种方式实现,在IDE中创建和通过Cmd命令来创建。
如下图所示:
可以看到生成CSR之前还需要选择一个*.p12的文件,由于没有,所以点击New,但是还是需要一个key store file 文件,如下图所示:
注意在上图中的第二处,是让你选择p12文件存储的目录及文件名,如下图所示,
点击OK按钮,填写必要的信息,如下图所示:
点击Next按钮就会在D:根目录下生成my_ide_key.p12两个文件,但遗憾的是,并不会那么顺利,会报错,如下图所示:
原因是D:\盘是我的系统盘,权限可能不足,我存储到E:\my_ide_key.p12这个路径,问题顺利解决,弹出新的界面,如下图所示
点击Finish按钮,到E:\盘根目录下查看生成的.p12 、.csr两个文件,如下图所示:
在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文件,如下图所示:
在cmd命令行工具中,执行如下命令:
keytool -certreq -alias "my_second_application" -keystore d:\\mysecondapplicationkey.p12 -storetype pkcs12 -file d:\\mysecondapplicationkey.csr
执行结果,如下图所示:
必须先生成p12文件,然后在p12文件的基础上再生成.csr文件,因为生成csr时需要输入p12的密钥库口令,也就是前面设置的"12345678Asd"。
打开电脑D:/盘根目录,最终生成的两个签名需要的文件已经具备,如下图所示:
这个文件申请有一个强制要求,就是必须要在AppGallery Connect上创建一个应用,然后才能获取得到.cer文件。
AppGallery Connect访问地址:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/
,进入此网址后,如下图所示:
点击“用户与访问”,弹出界面,如下所示:
点击“新增证书”按钮,填写能填的信息,如下图所示:
点击”选取“按钮,选择前面步骤中在本地创建好的D:/mysecondapplicationkey.csr这个文件,点击提交,如下图所示:
提交之后,就生成了我们发布证书,点击证书下载,即可获得.cer文件,如下图所示:
到此目前获得了3个文件,如下图所示:
点击”添加应用“按钮,输入必填信息,如下图所示:
包名可以从config.jsonde的bundleName值中获取,如下图所示:
创建应用时,可能会遇到软件包名(com.example.mysecondapplication)这个包名已存在的问题,巨坑啊,在本地项目中改一下包名:
直接在本地项目中全局替换包名,同时要去修改项目文件的路径,与包路径保持一致,如下图所示:
替换之后可能会安装报错,如下图所示:
因为更改了包名,还得去重新生成一下debug调试的Key信息,如下所示:
勾选上图中的选项就会重新走一次,debug模式的key信息,再次Run按钮,就会在真机上重新安装一个新的包名的APP了。
到此文件已经准备完毕。
打开项目的Project Structure界面,选择Siging Configs菜单,配置好准备的文件信息,如下图所示:
点击OK完成配置,会自动关闭此界面,就可以去打出签名包了。
点击Build菜单,即可打包hap和App,如下图所示:
签名后的应用,打包出来的结果如下图所示:
整个签名到打包的过程确实很漫长,4个签名相关的文件创建就要费九牛二虎之力,还需要要开发者账号才可以做鸿蒙开发,所以门槛还是存在,务必要注意cmd工具在使用时需要运行管理员权限再执行,hdc命令也是一样,遇到失败多尝试,总会解决。
API兼容问题:https://developer.huawei.com/consumer/cn/forum/topic/0203136649588923577
证书申请:https://developer.huawei.com/consumer/cn/doc/app/agc-help-harmonyos-releaseapp-0000001126380068
原创不易,求个关注。
微信公众号:一粒尘埃的漫旅
里面有很多想对大家说的话,就像和朋友聊聊天。
写代码,做设计,聊生活,聊工作,聊职场。
我见到的世界是什么样子的?
搜索关注我吧。
公众号与博客的内容不同。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。