在 Flutter 应用中使用 Firebase Crashlytics 时如何遵守 Apple 的“描述所需原因 API 的使用”?

问题描述 投票:0回答:1

2024 年 5 月 1 日之后,提交到 Apple App Store 的应用程序必须遵守描述所需原因 API 的使用。在准备我的 Flutter 应用程序以满足这些要求时,我无法找到在使用 Firebase Crashlytics 时如何做到这一点。具体来说,这部分让我感到困扰(引用自上面的链接):

磁盘空间API

...

7D9E.1

声明此原因,以便在使用设备的人选择提交的可选错误报告中包含磁盘空间信息。磁盘空间信息必须作为报告的一部分突出显示给相关人员。

仅在用户明确选择提交特定错误报告(包括磁盘空间信息)后,才能将因此访问的信息或任何派生信息发送到设备外,并且仅用于调查或响应错误报告的目的。

Firebase Crashlytics 确实会收集和发送这样的信息,如果我在 Firebase 控制台中检查一些现有事件,我可以在事件的

RAM free
部分下看到
Data
以及其他项目。

如果我理解正确的话,一般来说,请求用户许可发送错误报告数据是不够的。根据上面的引用我必须专门请求每个错误报告的许可,并显示报告的内容,包括可用内存

如何在 Flutter 应用程序中使用 Firebase Crashlytics 做到这一点?(Crashlytics 本身已正确添加到我的应用程序中并且工作正常,我可以在控制台中看到测试和实际错误报告。)。

  1. 我知道我可以禁用有关错误的自动 Crashlytics 数据收集,并为特定用户打开和关闭它,详情请参阅此处

  2. 我知道,如果禁用自动收集,我可以使用 checkForUnsentReports 检查未发送的 Crashlytics 报告。

  3. 我知道,根据用户的选择,我可以使用 sendUnsentReports 发送报告,也可以使用 deleteUnsentReports 删除这些报告。

我尝试根据前面的步骤实施该解决方案,我希望能够访问错误报告中收集的所有数据,包括可用空间。我的计划是按照 Apple 的要求向用户显示这些内容,并提供发送或丢弃错误报告的选择。

但结果我无法访问这些信息,我只能发送或删除所有未发送的错误报告。

我还尝试从我的代码调用

FirebaseCrashlytics.instance.recordFlutterFatalError
FirebaseCrashlytics.instance.recordError
的位置获取此信息,但我发现我只能从这里获取错误详细信息和堆栈跟踪。

ios flutter firebase crashlytics
1个回答
0
投票

问题中讨论的必需原因 API 已在 Firebase 10.22.0 中删除,因此可以选择更新到较新的 SDK 版本。

Firebase 10.22.0 对应于

firebase_core 2.26.0
(变更日志) 和
firebase_crashlytics 3.4.17

© www.soinside.com 2019 - 2024. All rights reserved.