#夏日挑战赛#OpenHarmony 应用安装报权限错误 原创
背景
最近从OpenHarmony官方app_sample仓库下载了一些 sample 到本地安装,但安装时出现权限问题,提示:Failed due to grant request permissions failed
从错误日志上看安装失败原因:由于授予请求权限失败,安装失败。
环境
- 设备:DAYU200【RK3568】
- 系统:OpenHarmony 3.2 Beat1
- SDK:8
- IDE:DevEco Studio 3.0 Beta4,Build Version: 3.0.0.992, built on July 14, 2022
问题分析与解决
知道是权限问题,现在要确认是那些权限导致,OpenHarmony中涉及的权限等级你可以参看:查看申请权限的等级,文档中列举出了目前OpenHarmony所有的权限和权限等级,如果权限的等级值为: “availableLevel”: “system_basic”,则需要在UnsgnedReleasedProfileTemplate.json 配置alcs字段,将需要的高等级权限放在acls中,具体做法如下:
解决方案
步骤1:下载签名需要的工具包
说明:签名工具下载解压后可以看到以下几个文件
备注:见在文末附件:OpenHarmony签名证书工具.zip
步骤2:修改UnsgnedReleasedProfileTemplate.json
1、新增acls字段,将权限等级为system_basic添加到此对象中,如下图:
"acls":{
"allowed-acls":[
""
]
},
2、修改bundler-name为需要编译的名称,如下图:
步骤3:执行签名脚本
说明:点击“签名证书.bat”执行签名脚本,生成myApplication_ohos_Provision.p7b。
- 签名证书.bat脚本的内容
java -jar hap-sign-tool.jar sign-profile -mode "localSign" -keyAlias "OpenHarmony Application Profile Release" -keyPwd "123456" -inFile "UnsgnedReleasedProfileTemplate.json" -outFile "myApplication_ohos_Provision.p7b" -keystoreFile "OpenHarmony.p12" -keystorePwd "123456" -signAlg "SHA256withECDSA" -profileCertFile "OpenHarmonyProfileRelease.pem" -validity "365" -developer-id "ohosdeveloper"
步骤4:配置签名
说明:在DevEco Studio->Project Stucture->Signing Configs中添加签名需要的必要文件。
别名:OpenHarmony Application Release
备注:因为签名文件我是从早前的代码仓库下载的,如果出现上图中提示的问题,可以先忽略,编译打包正常。
签名文件配置完成,可以在项目的 build-profile.json5 文件中查看签名配置内容:
步骤5:重新编译运行
说明:重新运行安装
这样就可以安装成功了。
参看文档:华为技术社区解决方案
感谢
如果您能看到最后,还希望您能动动手指点个赞,一个人能走多远关键在于与谁同行,我用跨越山海的一路相伴,希望得到您的点赞。
更新日志
–2022-08-24–
1、新增过程描述中需要输入的文本
2、新增签名cer文件,更新签名工具包
cer文件没有找到
cer文件就是把pem文件的后缀名修改为cer即可,我更新了工具包,你也可以直接下载新的工具包,其中包含了cer文件。
stored password : 123456那个报错无法apply,然后配置就不生效呢
你的IDE是说明版本,在beta3的版本上是可以忽略,点击OK就可以
直接点OK没有配置到build-profile.json5 文件
OpenHarmony签名证书工具.zip 和图片中的内容不一样啊????