打包后检测出某项隐私不通过,根据uniapp官方文档把对应隐私去掉
先说怎么检测有没有获取对应权限
# 进入包目录下解压包
apktool d 包名.apk
# 查找包有没有目标权限
# READ_PHONE_STATE 目标权限名称
grep -i "READ_PHONE_STATE" 包名/AndroidManifest.xml
# 如果输入有对应权限,则清除失败,如果是空的 则清除成功
检查项目有没有勾选对应权限
这里会默认额外添加权限,把用不到的去掉。
用不到的模块不要勾选
可以利用强制移除的权限去掉
项目根目录新建 AndroidManifest.xml 配置文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
package="io.dcloud.nativeresouce">
<!--按下面方式配置需要移除的permissions-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
<application>
<!--meta-data-->
</application>
</manifest>
如果上面方法都尝试之后,权限还是没有清除,大概率是缓存问题
# 完全清理项目
rm -rf unpackage/
rm -rf node_modules/
# 重新安装依赖和编译
npm install
然后再打包检测,上面使用的清除权限方法要保留,不要删掉。大概率会成功,反正我是清除成功了