# 应用上架检测出未使用的权限

#### 问题现象

场景一：

代码中没有用到通讯录受限权限(ohos.permission.READ\_CONTACTS,ohos.permission.WRITE\_CONTACTS)，但是上传app包时提示软件包内存在这个权限。

场景二：

应用上架的时候，应用市场反馈：

“app.hap的permission为用户授权权限但未配置reason和usedScene:ohos.permission.APP\_TRACKING\_CONSENT”。

对于未使用到的SDK权限，需要从app包中去除冗余。

#### 背景知识

*   应用存在收集用户的个人信息或权限的行为（通讯录），但未在应用内的隐私政策/在AppGallery Connect上提交的隐私政策网址中进行说明。不符合华为应用市场《审核指南》第7.11项。
*   removePermissions：removePermissions是一个对象数组，用于编译HAP/HSP模块时，指定需要删除的依赖包中的冗余权限，模块本身的权限不会被删除。

#### 问题定位

1.  排查app包内的module.json5文件，看是否误填了未使用的权限。如下：
    
2.  排查引用的三方库是否使用了此权限。比如在项目工程目录oh\_modules下，依次在引用三方库的module.json5文件中查看“requestPermissions”字段，以此排查应用申请权限属于哪个三方库。
    
3.  验证权限是否与功能场景匹配，避免声明未使用的敏感权限（如通讯录、位置等）。
4.  排查是否使用了已废弃权限，例如ohos.permission.WRITE\_MEDIA权限。需要根据文档说明使用替换方案。

#### 分析结论

项目中有三方库使用该权限。

#### 修改建议

1.  使用removePermissions删除三方库中未使用权限。
    
    IDE使用API15 beta2以上版本：下载链接。
    
    build-profile.json5新增removePermissions字段，在编译时将删除指定的依赖包中的冗余权限，而模块本身的权限不会被删除，仅对hap/hsp模块生效。
    
2.  查看三方库最新版本是否更新移除了该权限，如果去掉，可以更新到最新版。

#### 常见FAQ

Q：在UniApp工程应该如何去配置removePermissions字段呢？

A：在harmony-configs文件夹下放一个自定义的build-profile.json5文件，在build-profile.json5文件添加removePermissions字段即可。