为满足 Apple App Store 数据披露要求做准备

Apple 要求在 App Store 上发布应用的开发者披露有关其应用数据使用的特定信息。Apple 宣布,从 2020 年 12 月 8 日起,开发者必须为新应用及更新的应用提供这类披露信息。

本文档包含可能需要根据 Apple 的指南进行披露的 Firebase Apple 平台库行为。安装 Firebase 时,请记下您选择的依赖项管理器安装到您应用中的 build 目标。对于依赖项管理器列出的每个目标,请查看本文档中的相应部分,以确定您必须披露哪些数据收集信息。所安装的 Firebase build 目标的数量可能会超出预期数量,这是因为有些 Firebase build 目标之间还会存在暂时性的依赖关系。

如果您在使用任何涉及额外数据的可选产品功能,或者在参与任何涉及额外数据的产品新功能测试,请务必检查这些功能或测试是否需要披露额外数据。

为确保您应用的披露信息准确无误,我们建议您始终使用各 Firebase SDK 的最新版本。

Firebase 用户代理

Firebase 用户代理是从大多数 Firebase SDK 中收集的一组信息,其中包括:设备、操作系统、应用的软件包 ID 和开发者平台。用户代理绝不会与用户或设备标识符关联,Firebase 团队利用这些信息来确定平台和版本采用情况,以便更明智地制定有关 Firebase 功能的决策。

Core

FirebaseCore

  • 不收集数据。

GoogleUtilities

  • 不收集数据,但包含可供其他 SDK 收集数据的网络实用程序。

GoogleDataTransport

包含可供其他 SDK 收集数据的网络实用程序。

始终收集

  • 收集有关 SDK 性能的元数据(例如客户端日志事件缓存的大小以及因各种原因而丢弃的客户端日志事件的数量),以监控和维护产品质量。

A/B Testing

FirebaseABTesting

A/B Testing 不收集数据。

Firebase A/B Testing SDK 设置并使用 Google Analytics(分析)用户属性,以便为 Firebase Remote Config 和 Firebase In-App Messaging 的实验组指定成员资格。

Google Analytics(分析)

这篇支持文章提供了 Google Analytics(分析)数据收集信息。

App Check

FirebaseAppCheck

与使用情况相关

App Distribution

App Distribution SDK 仅用于进行 Beta 版测试。将应用提交到 App Store 时,请勿向其中添加 App Distribution SDK。

Authentication

FirebaseAuthentication

始终收集

  • 生成和存储用于验证用户身份的标识符。

与使用情况相关

  • 如果开发者提供用户的显示名,则收集显示名。
  • 当用户使用电子邮件密码或电子邮件链接身份验证时,收集用户的电子邮件地址。这些电子邮件地址由开发者提供,或包含在联合提供方的响应中(如果开发者使用联合身份)。
  • 当用户使用电话身份验证时,或者用户的电话号码添加为身份验证方法时,收集用户的电话号码(由开发者提供)。在使用短信作为第二重身份验证的流程中也会收集用户的电话号码。
  • 如果开发者将第三方身份验证提供方服务与 Firebase Authentication 搭配使用,则收集与第三方身份验证提供方服务有关的联系信息。例如,如果开发者使用 Facebook 身份验证,则用户的标识符可以关联到其 Facebook 个人资料,具体取决于授予的范围。如需了解详情,请参阅身份验证提供方的文档。
  • 如果应用关联至 Game Center,则存储用户的 Game Center ID。
  • 如果您的应用使用 reCAPTCHA Enterprise 保护身份验证流程,则会收集此令牌。请参阅 Apple 针对 reCAPTCHA Enterprise 的其他隐私权详细信息
  • 如果启用了数据收集,则收集 Firebase 用户代理

Crashlytics

FirebaseCrashlytics

始终收集

  • 在应用崩溃时收集堆栈轨迹和相关应用状态。
  • 收集设备和操作系统信息,以帮助调试崩溃。

与使用情况相关

  • 收集开发者附加到崩溃报告的所有自定义键、日志和自由文本用户 ID。此外,还会收集自定义堆栈轨迹中任何由开发者定义的非严重事件。
  • 如果 Crashlytics 与 Google Analytics(分析)搭配使用,则收集“面包屑导航” (breadcrumb) 日志。这些日志会识别临崩溃前执行的用户操作并记录崩溃次数。

Realtime Database

FirebaseDatabase

始终收集

始终收集

  • 针对延迟深层链接(应用安装后构建的深层链接)暂时收集设备数据,包括设备的屏幕尺寸、语言、操作系统版本、软件包 ID、IP 地址和 Firebase SDK 版本。

默认收集

  • 如果存在 FirebaseAnalytics 框架,则通过 Google Analytics(分析)自动记录链接互动事件。如需停用自动记录事件日志功能,请从应用中移除 FirebaseAnalytics
  • 在首次启动应用时,暂时在设备粘贴板中收集动态链接网址(如果有)。开发者可通过在应用的 Info.plist 文件中将 FirebaseDeepLinkPasteboardRetrievalEnabled 属性设置为 NO 来停用粘贴板。

Cloud Firestore

FirebaseFirestore

始终收集

Cloud Functions

FirebaseFunctions

始终收集

  • 收集函数调用元数据,包括函数调用方的函数名称和 IP 地址。

In-App Messaging

FirebaseInAppMessaging

始终收集

  • 记录与应用内消息的互动。这些互动(展示、点击和拒绝)通过 Google Analytics(分析)记录。Firebase 也会记录互动,以便帮助开发者评估消息传递宣传活动的效果。

Firebase 安装

FirebaseInstallations

始终收集

FirebaseInstanceID(已弃用)

FirebaseInstanceID 已弃用。

始终收集

  • 针对每次安装生成不能唯一标识用户或实体设备的标识符。
  • 生成并收集 FCM 注册令牌,这是 FirebaseMessaging 用于推送通知的应用实例 ID。
  • 记录 APNs 令牌并将其与 Firebase 实例 ID(FCM 注册令牌)关联。
  • 收集设备型号、语言、时区、操作系统版本、应用标识符和应用版本,以便生成 FCM 注册令牌。

Cloud Messaging

FirebaseMessaging

始终收集

  • 收集用于主题订阅和退订的应用标识符和应用版本。

默认收集

  • 如果存在 FirebaseAnalytics 框架,则通过 Google Analytics(分析)自动记录通知互动。如需停用此行为,请从您的应用中移除 FirebaseAnalytics

与使用情况相关

Firebase ML

FirebaseMLCommon

  • 不收集任何数据。

FirebaseMLModelDownloader

始终收集

  • 收集机器学习模型下载元数据,例如下载事件、删除事件和错误。

FirebaseMLModelInterpreter

默认收集

  • 收集机器学习推断元数据,例如推断时长和错误率。 如需停用此行为,请将 ModelInterpreter.isStatsCollectionEnabled 属性设置为 false

FirebaseMLVision

默认收集

  • 收集 ML Vision 模型元数据,例如创建和检测事件。如需停用此行为,请将 Vision.isStatsCollectionEnabled 属性设置为 false

Performance Monitoring

FirebasePerformance

始终收集

  • 收集 IP 地址以提供按地理位置细分的效果数据。
  • 收集应用性能指标(例如应用启动时间和网络请求延迟时间)以及开发者指定的自定义跟踪记录,以便衡量应用性能。
  • 收集应用的 CPU/内存用量,以提供应用性能的时间轴视图。
  • 收集设备信息、操作系统信息和应用信息,以便根据不同的设备细分过滤效果数据。

Remote Config

FirebaseRemoteConfig

始终收集

  • 收集 Firebase 用户代理
  • 收集设备的国家/地区代码、语言代码、时区、操作系统版本、Firebase Apple 应用 ID 和软件包 ID,以便定位基于该数据的参数。此外,我们还会收集和汇总操作系统版本和 SDK 版本,以了解使用趋势,并指导产品发展方向。

与使用情况相关

如果 Remote Config 与 Google Analytics(分析)搭配使用:

  • 收集 Firebase SDK for Google Analytics 获取的用户属性,以便定位基于用户属性条件的参数。
  • 收集 Firebase SDK for Google Analytics 获取的 first_open 事件时间戳,以便定位基于首次打开时间的参数。

如果使用 Remote Config 个性化:

  • Firebase Remote Config SDK 获取的数据和 Firebase SDK for Google Analytics 获取的事件可用于构建预测模型并衡量这些模型的性能。

Firebase 会话

FirebaseSession

始终收集

  • 收集有关应用性能的元数据(如软件包 ID、操作系统信息、SDK 版本和网络连接类型),以监控应用质量。
  • 收集使用情况数据(如应用在后台运行的时间),以按用户会话对性能指标进行分组,从而查看具体会话的使用情况信息。

Cloud Storage

FirebaseStorage

始终收集