CocoaPods 宣布 他们将于 2026 年 12 月进入只读模式,之后将无法再发布新的 pod 版本。以下部分将详细介绍此项变更,并说明如何将应用迁移到其他安装管理器。
概览
- 发生了哪些变化?CocoaPods 将进入只读状态,Firebase 将于 2026 年 10 月停止向 CocoaPods 发布新版本。
- 我的应用会崩溃吗?不会。现有版本的 Firebase 库将无限期地保留在 CocoaPods 注册表中,使用这些 CocoaPods 版本的应用将继续正常运行。
- 为什么要迁移?如需继续接收最新功能、性能 改进和关键修复,您应迁移到 Swift Package Manager 或 手动安装。
为配合 CocoaPods 的公告,Firebase 将于 2026 年 10 月停止向 CocoaPods 发布新版本 。这些变更会影响以下所有 pod 及其子依赖项:
| 受影响的 Firebase pod | ||
|---|---|---|
Firebase |
FirebaseAuth |
FirebaseInstallations |
FirebaseABTesting |
FirebaseCore |
FirebaseMessaging |
FirebaseAI |
FirebaseCrashlytics |
FirebaseMLModelDownloader |
FirebaseAILogic |
FirebaseDatabase |
FirebasePerformance |
FirebaseAnalytics |
FirebaseFirestore |
FirebaseRemoteConfig |
FirebaseAppCheck |
FirebaseFunctions |
FirebaseStorage |
FirebaseAppDistribution |
FirebaseInAppMessaging |
此外,这些变更还会影响封装了 原生 Firebase Apple SDK 的所有 Firebase 分发,包括 Firebase Unity SDK、 Firebase C++ SDK 和 FlutterFire。
迁移 Apple 应用
如果您要将其他(非 Firebase)依赖项从 CocoaPods 迁移出去,请注意,行业最佳实践是为整个项目使用单一安装方法。在同一目标中混用 CocoaPods 和 Swift Package Manager (SPM) 可能会导致复杂的依赖项循环和构建错误。如果您的 非 Firebase 依赖项尚不支持 SPM,那么在迁移时,使用 手动安装 Firebase 库是整合工作流的最稳定方式。
Swift Package Manager (SPM)
什么是 Swift Package Manager?
Swift Package Manager (SPM) 是 Apple 的原生代码分发管理工具。它直接集成到 Xcode 中,无需使用 CocoaPods 等外部 CLI 工具,并且无需为大多数标准配置使用 .xcworkspace,从而简化了项目结构。
迁移到使用 Swift Package Manager
对于大多数项目,迁移到 Swift Package Manager 不需要更改应用代码,除非您的项目具有自定义 Xcode 配置或依赖项,这些配置或依赖项大量使用 CocoaPods 安装脚本。
下面介绍了如何从 CocoaPods 迁移到 Swift Package Manager:
- 验证应用的每个依赖项是否都支持 Swift Package Manager。 所有 Firebase 库都支持 SPM,但您需要在非 Firebase 依赖项的 GitHub 代码库或产品页面中查看其 SPM 支持情况。 如果某些非 Firebase 依赖项不支持 SPM,那么使用 手动安装 而不是 SPM 是从 CocoaPods 迁移出来的最稳定方式。
- 关闭 Xcode,从项目中移除 CocoaPods:
- 在项目目录中运行以下命令,卸载 CocoaPods 依赖项:
pod deintegrate
- 删除 CocoaPods 生成的
.xcworkspace。
- 在项目目录中运行以下命令,卸载 CocoaPods 依赖项:
- 在 Xcode 中,使用 Swift Package Manager 依赖项更新项目:
- 通过 Xcode 打开项目的
.xcodeproj文件。 - 使用 File > Add Package Dependencies 重新添加应用依赖项。
- 通过 Xcode 打开项目的
- 添加 Firebase 软件包后,您可以更新所依赖的 Firebase 库,方法是在 Xcode 中前往项目设置,选择应用目标,然后在 Frameworks, Libraries, and Embedded Content 下更新库。 如需详细了解如何在 Xcode 中使用 SPM,请参阅 Apple 文档。
手动安装
什么是手动安装?
手动安装是指下载 Firebase.zip 归档,其中包含所有 Firebase 产品的预编译 XCFramework。这样,您就可以直接将特定 SDK 拖放到 Xcode 项目中,而无需使用依赖项管理器。
迁移到使用手动安装
- 关闭 Xcode,从项目中移除 CocoaPods:
- 在项目目录中运行以下命令,卸载 CocoaPods 依赖项:
pod deintegrate
- 删除 CocoaPods 生成的
.xcworkspace。
- 在项目目录中运行以下命令,卸载 CocoaPods 依赖项:
- 按照我们的 安装指南 中的步骤,手动将 Firebase 添加到您的项目中。
迁移 Unity、C++ 和 Flutter 应用
Firebase Unity SDK 和 FlutterFire
大多数 Unity 和 Flutter 开发者无需执行任何操作。在 Unity 或 Flutter 上更新到最新版本的 Firebase 会自动将 Apple 平台上的底层依赖项管理器迁移到 Swift Package Manager。
请注意,如果您通过 CocoaPods 管理非 Firebase 依赖项,可能需要手动迁移这些依赖项。
Firebase C++ SDK
如果您通过 CocoaPods 添加了底层 iOS 依赖项,可以按照上述迁移说明更新 Firebase CocoaPod 依赖项,改为使用 Swift Package Manager。
常见问题解答
我需要在 2026 年 10 月之后继续使用 CocoaPods。如何让我的应用继续运行?
您可以使用旧版本的 Firebase pod,也可以从 GitHub 复制 Firebase podspec,并将其托管在您自己的规范代码库中。
无论采用哪种方式,我们都建议您尽快从 CocoaPods 迁移出来 。在 2026 年 10 月停止对 CocoaPods 的支持后,我们将不再提供直接从 podspec 安装 Firebase 的官方支持。如果您选择自行托管 podspec,则需要负责确保其保持最新状态。
为什么 CocoaPods 的支持将于 2026 年 10 月停止,而 CocoaPods 可以发布到 2026 年 12 月?
我们选择 10 月是为了确保在注册表于 12 月锁定之前,发布到 CocoaPods 的最终版本是稳定的。此时间表为安全协调这些最终更新提供了必要的缓冲时间,并确保依赖于原生 SDK 但发布周期延迟的跨平台 SDK 有充足的时间来准备自己的版本。
如果我不更新,我的应用会停止运行吗?
不会,此项弃用只会影响 Firebase 库的未来版本。 CocoaPods 中的现有版本仍可安装,使用这些 pod 版本的已部署应用不会受到影响。
这会影响项目结算吗?
不会。
迁移到 Swift Package Manager 后,我在编译项目时收到“FirebaseLibrary not found”错误。如何解决这个问题?
确保您已将 Firebase 软件包添加到 Xcode 项目中。
添加 Firebase 软件包时,Xcode 会提示您将 Firebase 框架添加到应用的构建目标。如果您在此步骤中忘记添加框架,可以随时在目标的设置中,在 Build Phases > Link Binary with Libraries 下添加框架。如果您的项目包含多个目标,请确保已将 Firebase 添加到正确的目标。
此过渡会破坏我的 CI/CD 流水线吗?
不会,运行 pod install 或 pod update 的流水线将继续适用于现有版本。不过,它们不会提取 2026 年 10 月之后发布的任何新的 Firebase 库更新。