ReactNative-Play商店警告“从5月5日开始,您必须让我们知道为什么您的应用需要广泛的存储访问权限”
我有一个 React Native 应用程序,它在 Play 商店上架了一段时间,最近我从 Play 商店收到了这个重要通知,说明如果我不解决这个问题,我的应用程序将从 Play 商店中删除。
谁能告诉我这是什么以及如何解决它?
这是来自 Play 商店的完整消息
我们检测到您的应用在 1 个或多个 app bundle 或 APK 的清单文件中包含 requestLegacyExternalStorage 标志。
在运行 Android 11+ 的设备上使用应用的开发人员必须使用 Scoped Storage 来让用户更好地控制他们的设备存储。要在 5 月 5 日之后在 Android 11 或更高版本上发布您的应用,您必须:
- 更新您的应用程序以使用更多隐私友好的最佳实践,例如存储访问框架或媒体存储 API
- 更新您的应用以在清单文件中声明所有文件访问权限 (MANAGE_EXTERNAL_STORAGE),并从 5 月 5 日起在 Play 管理中心完成所有文件访问权限声明
- 从您的应用程序中完全删除所有文件访问权限。
对于面向 Android 11 的应用,将忽略 requestLegacyExternalStorage 标志。您必须使用所有文件访问权限才能保留广泛访问权限。
未经许可而请求访问所有文件访问权限的应用将从 Google Play 中删除,并且您将无法发布更新。
我的 package.json
{
"@react-native-async-storage/async-storage": "^1.13.4",
"@react-native-community/masked-view": "^0.1.10",
"@react-navigation/bottom-tabs": "^5.11.8",
"@react-navigation/drawer": "^5.12.3",
"@react-navigation/material-bottom-tabs": "^5.3.14",
"@react-navigation/native": "^5.9.2",
"@react-navigation/stack": "^5.14.2",
"axios": "^0.21.1",
"fuse.js": "^6.4.6",
"react": "16.13.1",
"react-native": "0.63.4",
"react-native-device-info": "^8.0.1",
"react-native-gesture-handler": "^1.10.0",
"react-native-linear-gradient": "^2.5.6",
"react-native-paper": "^4.7.1",
"react-native-reanimated": "^1.13.2",
"react-native-safe-area-context": "^3.1.9",
"react-native-screens": "^2.17.1",
"react-native-svg": "^12.1.0",
"react-native-vector-icons": "^8.0.0"
}
和 manifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.elevel.fromto">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
同样在App bundle explorer下的 Play Console 中,我发现我的应用正在使用以下权限:
- android.permission.INTERNET
- com.google.android.c2dm.permission.RECEIVE
- com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE
THE END
二维码