- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 React Native 应用程序,它在 Play 商店中有一段时间了,最近我收到了来自 Play 商店的重要通知,说明如果我不解决这个问题,我的应用程序将从 Play 商店中删除。
谁能告诉我这是什么以及如何解决它?
这是来自 Play 商店的完整消息
We've detected that your app contains the requestLegacyExternalStorage flag in the manifest file of 1 ormore of your app bundles or APKs.
Developers with apps on devices running Android 11+ must use ScopedStorage to give users better access control over their device storage.To release your app on Android 11 or newer after May 5th, you musteither:
- Update your app to use more privacy friendly best practices, such asthe Storage Access Framework or Media Store API
- Update your app to declare the All files access (MANAGE_EXTERNAL_STORAGE) permission in the manifest file, and complete the All files access permissiondeclaration in Play Console from May 5th
- Remove the All files access permission from your app entirely.
For apps targeting Android 11, therequestLegacyExternalStorage flag will be ignored. You must use theAll files access permission to retain broad access.
Apps requesting access to the All files access permission without apermitted use will be removed from Google Play, and you won't be ableto publish updates.
{
"@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>
同样在 Play Console 下
应用程序包浏览器 我发现我的应用正在使用以下权限:
最佳答案
我发现,如果我们的目标是 Android API 29,我们不必担心警告,只需设置 requestLegacyExternalStorage=true
在您应用的 list 文件中。
虽然我们必须在 11 月之前升级到 Android API 30。
关于android - React Native - Play 商店警告 "Starting May 5th you must let us know why your app requires broad storage access",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67098530/
//Version A: var let = true; console.log(let);//true //Version B: let let = 0; //syntax Error: let i
//Version A: var let = true; console.log(let);//true //Version B: let let = 0; //syntax Error: let i
我在看a talk on JSON hijacking不到 2 分钟,已经有我不熟悉的 JavaScript。 let:let{let:[x=1]}=[alert(1)] 它似乎在 Edge 上工作并
(let ((x 2) (y 3) (let ((x 7) (z (+ x y))) (* z x))) 使用上面的代码,为什么答案是 35,而不是 70?在第二个 let
我正在编写一个以间隔作为参数并返回百分比错误的函数,但我坚持使用 let 或 let*。这是代码: 嵌套的 let 版本: (define (percent interval) (let (sta
我一直在阅读有关 Swift 中的Optional 的内容,并且看到过一些示例,其中 if let 用于检查Optional 是否包含值,如果包含值,则使用展开的值执行某些操作. 但是,我发现在 Sw
我正在尝试实现 local search algorithm进行优化。我是 Lisp 的新手,所以这是我想出的代码(注意 FORMATs): (defun local-search (solution
我一直在阅读有关 Swift 中的 Optionals 的文章,并且我看到了一些示例,其中 if let 用于检查 Optional 是否包含一个值,如果它包含 - 对未包装的值执行一些操作. 但是,
let () = Random.self_init();; let _ = Random.self_init ();; │- : unit = () 似乎“让()”什么也没返回? 真挚地! 最佳答案
有没有办法避免接下来的构造?一种在不向代码添加意图的情况下检查 null 的方法?我的意思是像 if (variableOne == null) return 但采用酷炫的 koltin 风格? va
什么时候使用 if-let 而不是 let 会使代码看起来更好以及对性能有影响吗? 最佳答案 我猜if-let当您想在代码的“then”部分引用 if 条件的值时,应该使用: 即而不是 (let [r
我有这些功能: (def i (atom {})) ;incremented/calculated file stats (defn updatei [n fic fos] (swap! i co
这个问题已经有答案了: Confused by the difference between let and let* in Scheme (2 个回答) 已关闭10 年前。 let、let* 和 l
因此,在 objective-c 、C/C++、.NET 以及我使用过的几乎所有其他语言中,您可以声明可以包含以前常量的常量,例如 #define PI 3.14159 #define HALFPI
在 Common Lisp 中,let 使用列表进行绑定(bind),即: (let ((var1 1) (var2 2)) ...) 虽然 Clojure 使用向量代替: (let
看下面两个使用相同代码的场景: 使用 IF LET: public func peripheral(_ peripheral: CBPeripheral, didDiscoverServices er
这个问题在这里已经有了答案: Differences between "static var" and "var" in Swift (3 个答案) 关闭 5 年前。 class Foo {
我脑海中的例子是:什么更好? 示例 1: (define (foo x) ... (values a b c)) (let-values (((a b c) (foo 42))) .
考虑以下宏: (defmacro somemacro [] (list 'let ['somevar "Value"] 'somevar)) 展开它会产生以下结果: (macroexpand
可以来给我解释一下为什么必须使用 let !而不是在这种情况下让?只有当我包含 ! 时,测试才会通过。我以为我明白 let 会在该块中的每个“it”语句之前自动执行,但显然情况并非如此。 descri
我是一名优秀的程序员,十分优秀!