因疑似上传用户图片信息,Expo React Native应用遭Google Play下架求助
解决Google Play因“未披露上传用户图片”下架Expo应用的问题
我们的Expo(React Native)应用被Google Play下架,理由是违反用户数据及移动不良软件政策,判定存在未以显著方式披露上传用户图片信息的问题,但实际上应用并未收集或上传用户图片——仅使用expo-file-system和expo-document-picker组件,仅允许用户下载MP3/MP4文件,且文档选择器仅开放音频、视频文件类型。已申诉并上传新版本,但问题未解决,求可行方案。
排查与解决建议
1. 清理冗余权限声明
检查app.json/app.config.js中的android.permissions配置,移除所有与图片访问、读取相关的非必要权限(比如READ_MEDIA_IMAGES、READ_EXTERNAL_STORAGE等)。即使代码没用到这些权限,声明本身可能触发Google的自动检测机制。
同时确认expo-document-picker的调用代码中,严格指定文件类型为["audio/*", "video/*"],杜绝意外允许图片类型的情况。
2. 排查第三方依赖的隐性数据行为
从依赖列表看,以下几个库可能存在隐性的数据收集或权限使用,需要逐一验证:
@react-native-firebase/analytics:检查Firebase Analytics的事件配置,确保未自动追踪媒体文件相关的事件或数据;@sentry/react-native:查看Sentry的错误上报内容,过滤掉任何可能包含用户设备图片路径或媒体信息的字段;react-native-appsflyer、react-native-fbsdk-next:检查这些SDK的初始化配置,关闭默认开启的非必要数据收集项,尤其是与媒体相关的内容。
3. 强化申诉材料与隐私披露
- 更新应用隐私政策,明确加粗声明:应用不会收集、上传任何用户图片,仅处理音频/视频文件,且所有文件操作仅在本地完成或仅为下载服务;
- 申诉时提交以下材料:
- 代码片段截图,证明
expo-document-picker仅限制音频/视频类型; - 权限配置截图,展示无任何图片相关权限;
- 隐私政策的对应条款截图;
- 应用操作录屏,全程展示仅能选择音频/视频文件,无任何图片访问入口。
- 代码片段截图,证明
4. 构建与提交优化
- 使用
eas build --clear-cache重新构建应用,清除旧的依赖缓存和配置残留; - 新版本提交时,在版本更新说明中明确标注:“移除冗余媒体权限声明,强化隐私披露,无用户图片收集/上传行为”。
应用依赖列表
"dependencies": { "@expo-google-fonts/inter": "^0.2.3", "@react-native-async-storage/async-storage": "1.21.0", "@react-native-firebase/analytics": "^18.7.3", "@react-native-firebase/app": "^18.7.3", "@react-native-masked-view/masked-view": "0.3.0", "@sentry/react-native": "5.17.0", "axios": "^1.6.2", "expo": "^50.0.3", "expo-application": "~5.8.3", "expo-av": "~13.10.4", "expo-blur": "~12.9.1", "expo-build-properties": "~0.11.0", "expo-checkbox": "~2.7.0", "expo-constants": "~15.4.5", "expo-device": "~5.9.3", "expo-document-picker": "~11.10.1", "expo-file-system": "~16.0.5", "expo-linear-gradient": "~12.7.1", "expo-linking": "~6.2.2", "expo-localization": "~14.8.3", "expo-notifications": "~0.27.5", "expo-router": "~3.4.5", "expo-sharing": "~11.10.0", "expo-splash-screen": "~0.26.4", "expo-status-bar": "~1.11.1", "expo-store-review": "~6.8.3", "expo-system-ui": "~2.9.3", "expo-tracking-transparency": "~3.3.0", "i18n-js": "^4.3.2", "react": "18.2.0", "react-native": "0.73.2", "react-native-appsflyer": "^6.12.2", "react-native-fbsdk-next": "^12.1.4", "react-native-gesture-handler": "~2.14.0", "react-native-modal": "^13.0.1", "react-native-progress": "^5.0.1", "react-native-purchases": "^7.5.1", "react-native-reanimated": "~3.6.0", "react-native-restart": "^0.0.27", "react-native-safe-area-context": "4.8.2", "react-native-screens": "~3.29.0", "react-native-svg": "14.1.0", "react-native-webview": "13.6.4", "recyclerlistview": "^4.2.0" }
内容的提问来源于stack exchange,提问作者Cissyx
相关产品推荐
相关产品推荐

