Flutter:我们检测到您的应用在您的 1 个或多个 app bundle 或 APK 的清单文件中包含 requestLegacyExternalStorage 标志

Posted

技术标签:

【中文标题】Flutter:我们检测到您的应用在您的 1 个或多个 app bundle 或 APK 的清单文件中包含 requestLegacyExternalStorage 标志【英文标题】:Flutter: We've detected that your app contains the requestLegacyExternalStorage flag in the manifest file of 1 or more of your app bundles or APKs 【发布时间】:2021-07-13 21:31:00 【问题描述】:

我在 Google Play 商店中有一个使用 Flutter image_picker 的应用。我收到了来自 Google 的警报,提示我无法在清单文件中使用 requestLegacyExternalStorage =true。我很困惑,不知道该怎么做,因为在 image_picker 的文档中,它清楚地表明我们应该在清单文件中使用 requestLegacyExternalStorage。请帮我解决这个问题,是否有解决方法?

【问题讨论】:

您需要从您的应用程序中删除该模块或希望更新不requestLegacyExternalStorage。该标志仍然有效(当您的应用在运行 android 10 的设备上运行时),这只是谷歌的新政策,不接受在其商店中使用它的应用。 这是否意味着我的应用将在 5 月 5 日之后从 Playstore 中删除? 据我了解,5 月 5 日“许可声明表”将变得可访问,因此他们暂时不应删除应用程序。 我们在this thread 上得出的结论是,您的应用不会因使用 requestLegacyExternalStorage 而受到任何影响。所以你可以简单地忽略这个不必要的混淆公告。 @Pawel 在我的应用程序中,我的目标是 29 并且 requestLegacyExternalStorage 是真的。我的应用程序收到了同样的通知,担心我会从清单中删除该标志吗?影响将在 android 10 设备上使用,因为使用了 android 11 范围存储。 【参考方案1】:

如果您的 targetSdk 不是 30,您可以继续使用标志 android:requestLegacyExternalStorage="true",您无需执行任何操作。

来自this post:

Google Play 限制使用high risk or sensitive permissions, 包括一个名为All files access 的特殊应用程序访问权限。 这仅适用于面向 Android 11(API 级别 30)的应用 并声明添加的MANAGE_EXTERNAL_STORAGE 权限 在 Android 11 中。此外,此政策不影响使用 READ_EXTERNAL_STORAGE 权限。

如果您的应用不需要访问MANAGE_EXTERNAL_STORAGE 权限,您必须将其从应用的清单中删除才能 成功发布您的应用程序。有关符合政策的替代方案的详细信息 下面也详细介绍了实现。

如果您的应用符合可接受使用的政策要求,或者是 有资格获得例外,您将被要求declare this and any other high risk permissions 在 Play 管理中心使用声明表单。

不符合政策要求或未提交 声明表可能会从 Google Play 中删除。

另外,this GitHub post 对此进行了很好的讨论:

SDK 41 包含使您的应用兼容所需的所有更改 使用 Android 11,并且不应导致从 Play 商店中删除。 您无需采取任何行动。就因为你收到了这个 警告,并不意味着您的应用侵犯了新的范围 存储策略。根据this response 来自 Google 的某个人,他们将此警告发送给使用 requestLegacyExternalStorage 标志,因为这是他们最好的指标 可能需要声明 MANAGE_EXTERNAL_STORAGE 的应用程序 权限。

如果您使用的是 SDK 41 - 您无事可做,则可以忽略此警告。 如果您使用的是 SDK 40 或更低版本 - 您可以忽略此警告,因为它专门针对 Android 11。

还可以查看这些有用的链接:

https://developer.android.com/about/versions/11/privacy/storage https://www.androidcentral.com/what-scoped-storage

【讨论】:

以上是关于Flutter:我们检测到您的应用在您的 1 个或多个 app bundle 或 APK 的清单文件中包含 requestLegacyExternalStorage 标志的主要内容,如果未能解决你的问题,请参考以下文章

Google 开发者控制台中的“我们检测到您的应用正在使用旧版本的 Google Play 开发者 API”警告是啥?

在Flutter中设置更好的Logging的指南

如何在您的Flutter应用程序中添加SliverAppBar

如何在 iOS 9 新的反向链接功能中检测用户返回到您的应用程序?

错误记录Google Play 上架报错 ( 我们检测到您的应用程序包含未经认证的广告SDK或未经批准用于儿童导向服务的SDK )

我们检测到您的浏览器不兼容传输层安全协议 (TLS) 1.1 或更高版本,此协议在 Internet 上用于确保您通信的安全性。