HBuilderX打包后app安装启动会自动申请读写手机存储需访问系统相册,申请获取设备信息权限,这2种都是敏感权限,容易导致上架应用商店审核被拒,如图:
注意 :图片是用的网上的
针对上面的这两个提示框的解决方法,应该分为两种
1. 首先是云打包(就是用 HBuilderX打包):之前在处理这个问题的时候,网上一部分的说法是在 manifest.json
这个文件里面去配置
1-1. 如果是用的 uni-app
这个框架,则需要在 “app-plus” -> “distribute” -> “android” 节点下添加
uni-app项目 在 "app-plus" -> "distribute" -> "android" 添加
5+ App项目 在 "plus" -> "distribute" -> "google" 节点下添加
1.关闭获取设备信息权限
"permissionPhoneState": {
"request": "none",
"prompt": "为保证您正常、安全地使用,需要获取设备识别码(部分手机提示为获取手机号码)使用权限,请允许。"
}
2. 关闭读写手机存储相册权限
"permissionExternalStorage": {
"request": "none",
"prompt": "应用保存运行状态等信息,需要获取读写手机存储(系统提示为访问设备上的照片、媒体内容和文件)权限,请允许。"
}
注意 :
request:
字符串类型,必填,申请设备信息权限策略,可取值none、once、always。默认值为once。
none : 应用启动时不申请
once : 应用第一次启动时申请,用户可以拒绝
always :应用每次启动都申请,并且用户必须允许,用户拒绝时会弹出以下提示框引导用户重新允许
prompt :
字符串类型,可选,用户拒绝时弹出提示框上的内容
1-2. 如果是离线打包则需要在androidManifest.xml
的application
节点下添加如下字段
1. 存储权限弹窗配置 :
<application>
<meta-data android:name="DCLOUD_WRITE_EXTERNAL_STORAGE" android:value="none"/>
</application>
2. 读取手机状态弹窗配置 :
<application>
<meta-data android:name="DCLOUD_READ_PHONE_STATE" android:value="none"/>
</application>
注意 :value可取值为 none、once、always。
2. 因为我的项目是在 Android Studio
里面进行离线打包的,所以直接在androidManifest.xml
这个文件里面进行相关配置就行了。第一种方案没有测试,仅供参考
参考文档 : https://ask.dcloud.net.cn/article/36549#externalstorage