迁移为在主模块中使用 Swift 扩展程序 API

我们正在将 Swift 扩展程序 SDK 合并到主 SDK 中,目的是让 Swift 原生 API 更广泛地提供,以及提高未来对新 Swift 语言功能的支持能力。下面介绍了我们进行的更改以及这些更改可能对您的项目产生的影响。

有哪些变化?

从 Firebase for Apple SDK 10.17.0 开始,Swift 扩展程序 SDK 已合并到其相应的主 SDK 中。例如,FirebaseFirestoreSwift 模块中的所有 API 都已添加到 FirebaseFirestore 中,因此您不必再导入 FirebaseFirestoreSwift 模块即可访问这些 API。

由于所有 Swift 扩展程序现在是主模块的一部分,因此不再需要扩展程序 SDK,且已被弃用。如果包含或使用 Swift 扩展程序 SDK,系统会引发编译器警告,我们最早将于 2024 年 2 月完全停止发布 Swift 扩展程序。

★ 注意:当前或之前发布的任何 Swift 扩展程序版本仍可正常运行。但是,我们建议您迁移应用以使用主模块中的 Swift API,从而确保您继续收到修复,并且可以充分利用更改和新功能。

此更改的重要日期

2023 年 10 月

Swift 扩展程序 SDK 已合并到主 SDK 中,然后已弃用,取而代之的是主 SDK。请参阅宣布此更改的 10.17.0 版的版本说明。

您现在可以直接从主 SDK 模块使用 Swift 扩展程序 SDK API。在下一个主要版本发布之前,您仍然可以使用扩展程序 SDK,但在使用该 SDK 时会触发弃用警告。

最早 2024 年 2 月

我们将停止发布 Swift 扩展程序的新版本,并从 Firebase 的 Package.swift 中移除 Swift 扩展程序。旧版本可继续正常使用,但不会收到更新。

如何迁移为在主模块中使用 Swift 原生 API

如果您目前没有使用 Swift 扩展程序 SDK,则无需采取任何措施。如果您在使用 Swift 扩展程序 SDK,请在项目中进行以下更改。

工作区更改

Swift Package Manager

将 Firebase 更新到 10.17.0 版及更高版本后,前往目标设置的“常规”标签页中的“框架、库和嵌入式内容”部分,然后移除 Swift 扩展程序 SDK(例如 FirebaseFirestoreSwift)。

CocoaPods

将 Firebase 更新到 10.17.0 版及更高版本后,前往 Podfile,移除与项目依赖于为目标添加框架部分相对应的行,并移除 Swift 扩展程序 SDK(例如 pod FirebaseFirestoreSwift)。然后,重新运行 pod install 命令。

Zip 分发和 Carthage

将 Firebase 更新到 10.17.0 版及更高版本后,移除项目中的任何 Swift 扩展程序 xcframeworks(例如 FirebaseFirestoreSwift.xcframework)。

源代码更改

对于您之前使用过的所有 Swift 扩展程序 SDK,请执行以下操作:

  1. 删除引用 Swift 扩展程序 SDK 的所有 import 语句。如果未单独导入主 SDK,则您需要通过删除行尾的 Swift 将 Swift 扩展程序导入替换为主 SDK 导入。
  2. 如果您使用 Swift 的显式模块命名空间来引用任何 Swift 扩展程序 SDK 类型,则需要将其替换为相应的主 SDK。例如,FirebaseFirestoreSwift.QueryPredicate 需要重命名为 FirebaseFirestore.QueryPredicate