
#夏日挑战赛#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添加到此对象中,如下图:
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中添加签名需要的必要文件。
备注:因为签名文件我是从早前的代码仓库下载的,如果出现上图中提示的问题,可以先忽略,编译打包正常。
签名文件配置完成,可以在项目的 build-profile.json5 文件中查看签名配置内容:
步骤5:重新编译运行
说明:重新运行安装
这样就可以安装成功了。
参看文档:华为技术社区解决方案
感谢
如果您能看到最后,还希望您能动动手指点个赞,一个人能走多远关键在于与谁同行,我用跨越山海的一路相伴,希望得到您的点赞。
