react-native解决安卓应用市场自启动违规行为,ACTION_BOOT_COMPLETED

618 阅读1分钟

起因:
收到应用商店的反馈:
尊敬的开发者:
您好!
查询您的应用通过开机广播的方式进行自启动行为。该行为涉及隐私违规。
违规记录:ACTION_BOOT_COMPLETED
整改意见:APP需在隐私政策中明示自启动的目的和用途,在隐私政策描述的相应场景下,产生自启动行为,且需要在应用内提供相应功能,由用户自主选择是否开启自启动。

解决方案:
AndroidManifest.xml文件搜索BOOT_COMPLETED权限(如果自己代码里没有就搜索第三方组件)
然后给对应权限添加tools:node="remove"这样可以直接删除第三方sdk里的权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" tools:node="remove" />

如果打包时报错,记得给AndroidManifest.xml最上方manifest标签添加xmlns:tools="schemas.android.com/tools"

<manifest
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  ...

如果想查看apk中的权限,可以使用aapt工具 命令:

aapt dump badging xxx.apk

结果如下:

image.png 如果终端报错:command not found: aapt 是因为未配置aapt环境变量导致导致的,添加环境变量就可以了
具体的做法是把下面的命令加入到 shell 的配置文件中。如果你的 shell 是 zsh,则配置文件为~/.zshrc,如果是 bash 则为~/.bash_profile(可以使用echo $0命令查看你所使用的 shell。)

AAPT_HOME=$HOME/Library/Android/sdk/build-tools/31.0.0
export PATH=$PATH:$AAPT_HOME

保存配置后使用source ~/.zshrc命令来使环境变量设置立即生效
检查是否配置成功:

aapt --help

如果未生效,可以新开一个终端试再试一下