taro RN 安卓应用 在腾讯应用开放平台上架被拒 (原因:获取Android_ID)如何解决

cgh8pdjw  于 2023-02-04  发布在  Android
关注(0)|答案(2)|浏览(470)

相关平台

React Native

使用框架: React

复现步骤

#1 、使用 RN 开发安卓应用(使用了Taro 原生 React Native 壳子 https://github.com/NervJS/taro-native-shell/)
#2 、开发好安卓应用(项目本身未使用获取Android_ID代码)
#3 、在腾讯应用开放平台申请上架( https://app.open.qq.com/)
#4 、上架过程中因隐私问题被拒
#5 、上架被拒原因:同意隐私政策前 获取Android_ID

期望结果

在同意隐私政策后适时获取Android_ID

实际结果

程序运行后会直接获取Android_ID

环境信息

👽 Taro v3.5.11

  Taro CLI 3.5.11 environment info:
    System:
      OS: macOS 12.5
      Shell: 5.8.1 - /bin/zsh
    Binaries:
      Node: 19.0.1 - /opt/homebrew/bin/node
      Yarn: 1.22.19 - /opt/homebrew/bin/yarn
      npm: 8.19.2 - /opt/homebrew/bin/npm
    npmPackages:
      @tarojs/cli: 3.5.11 => 3.5.11 
      @tarojs/components: 3.5.11 => 3.5.11 
      @tarojs/helper: 3.5.11 => 3.5.11 
      @tarojs/plugin-framework-react: 3.5.11 => 3.5.11 
      @tarojs/plugin-platform-alipay: 3.5.11 => 3.5.11 
      @tarojs/plugin-platform-jd: 3.5.11 => 3.5.11 
      @tarojs/plugin-platform-qq: 3.5.11 => 3.5.11 
      @tarojs/plugin-platform-swan: 3.5.11 => 3.5.11 
      @tarojs/plugin-platform-tt: 3.5.11 => 3.5.11 
      @tarojs/plugin-platform-weapp: 3.5.11 => 3.5.11 
      @tarojs/react: 3.5.11 => 3.5.11 
      @tarojs/rn-runner: 3.5.11 => 3.5.11 
      @tarojs/router: 3.5.11 => 3.5.11 
      @tarojs/runtime: 3.5.11 => 3.5.11 
      @tarojs/shared: 3.5.11 => 3.5.11 
      @tarojs/taro: 3.5.11 => 3.5.11 
      @tarojs/taro-h5: 3.5.11 => 3.5.11 
      @tarojs/taro-rn: 3.5.11 => 3.5.11 
      @tarojs/webpack5-runner: 3.5.11 => 3.5.11 
      babel-preset-taro: 3.5.11 => 3.5.11 
      eslint-config-taro: 3.5.11 => 3.5.11 
      expo: ~46.0.1 => 46.0.16 
      react: ^18.0.0 => 18.2.0 
      react-native: ^0.69.3 => 0.69.6

补充信息

#行为阶段 同意隐私政策前
#行为名称 获取Android_ID
#个人信息相关 否
#触发频率(次/秒)1
#主体类型 SDK
#主体名称 expo-cli
#包名 expo
#函数调用栈 "android.provider.Settings$Secure.getString(android.content.ContentResolver,java.lang.String)
expo.modules.application.ApplicationModule.getConstants(ApplicationModule.kt:60)
expo.modules.adapters.react.NativeModulesProxy.getConstants(NativeModulesProxy.java:107)
com.facebook.react.bridge.JavaModuleWrapper.getConstants(JavaModuleWrapper.java:142)
com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
android.os.Handler.handleCallback(Handler.java:873)
com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27)
com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:228)"

以上为腾讯开放平台反馈的SDK行为数据,供参考

此外:查代码发现大概率是框架本身在默认情况下获取了Android_ID造成,该如何解决?

zdwk9cvp

zdwk9cvp1#

也就是expo-application会读取ANDROID_ID
然后expo-sensor在应用启动的时候就会通过onHostResume事件注册传感器监听
而小米市场认为传感器数据也属于个人敏感信息

打下补丁

(来自交流群5)

dwthyt8l

dwthyt8l2#

感谢,我尝试一下

相关问题