此存储库包含除 FirebaseAnalytics 之外的所有 Apple 平台 Firebase SDK 的源代码。
Firebase 是一个应用开发平台,提供可帮助您构建、发展应用并通过应用获利的工具。有关 Firebase 的更多信息可以在 Firebase 官方网站上找到。
有关不同安装方法的详细信息,请参阅以下小节。如果可用,建议安装带有Swift
后缀的任何库,以便在使用 Swift 编写应用程序时获得最佳体验。
标准吊舱安装
斯威夫特包管理器
从 GitHub 存储库安装
实验迦太基
有关标准 Pod 安装的说明,请访问:https://firebase.google.com/docs/ios/setup。
有关 Swift Package Manager 支持的说明可以在 SwiftPackageManager.md Markdown 文件中找到。
这些指令可用于访问其他分支、标签或提交处的 Firebase 存储库。
有关覆盖 pod 源位置的说明和选项,请参阅 Podfile 语法参考。
所有官方版本都在此存储库中标记并可通过 CocoaPods 获取。要访问本地源快照或未发布的分支,请使用 Podfile 指令,如下所示:
要通过分支访问 FirebaseFirestore:
pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main'pod 'FirebaseFirestore', :git => 'https:// github.com/firebase/firebase-ios-sdk.git', :branch => 'main'
要通过 firebase-ios-sdk 存储库的签出版本访问 FirebaseMessaging:
pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk' pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk'
实验性 Carthage 发行版的说明可以在 Carthage.md 中找到。
有关从框架或库使用 Firebase 的详细信息,请参阅 firebase_in_libraries.md。
要在此存储库中开发 Firebase 软件,请确保您至少拥有以下软件:
Xcode 15.2(或更高版本)
CocoaPods 仍然是规范的开发方式,但大部分存储库现在支持使用 Swift Package Manager 进行开发。
安装以下内容:
CocoaPods 1.12.0(或更高版本)
CocoaPods 生成
对于您要开发的 pod:
pod gen Firebase{此处为名称}.podspec --local-sources=./ --auto-open --platforms=ios
注意:如果 CocoaPods 缓存已过期,您可能需要在pod gen
命令之前运行pod repo update
。
注意:将--platforms
选项设置为macos
或tvos
以针对这些平台进行开发/测试。从 10.2 开始,Xcode 无法正确处理多平台 CocoaPods 工作区。
Firestore 有一个独立的 Xcode 项目。请参阅 Firestore/README Markdown 文件。
pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios
选中App-iOS Build Settings中的Mac框
在“设置签名和功能”选项卡中对应用程序进行签名
单击项目管理器中的 Pod
将签名添加到 iOS 主机应用程序和单元测试目标
选择单位-单位方案
运行它来构建和测试
或者,禁用每个目标中的签名:
转到构建设置选项卡
点击+
选择Add User-Defined Setting
添加值为NO
的CODE_SIGNING_REQUIRED
设置
启用测试方案: ./scripts/setup_spm_tests.sh
open Package.swift
或在 Finder 中双击Package.swift
。
Xcode 将打开项目
选择要构建的库或要运行的测试套件的方案
通过选择运行目的地以及方案来选择目标平台
有关详细信息,请参阅 AddNewPod Markdown 文件。
有关管理标头和导入的信息,请参阅 HeadersImports Markdown 文件。
为了确保代码格式一致,请在创建拉取请求 (PR) 之前运行脚本 ./scripts/check.sh。
GitHub Actions 将验证任何代码更改是否以符合样式的方式完成。安装clang-format
和mint
:
brew install clang-format@19brew 安装 mint
选择一个方案并按 Command-u 构建组件并运行其单元测试。
要运行示例应用和集成测试,您需要一个有效的GoogleService-Info.plist
文件。 Firebase Xcode 项目包含没有实际值的虚拟 plist 文件,但可以用真实的 plist 文件替换它们。要获取您自己的GoogleService-Info.plist
文件:
转到 Firebase 控制台
创建一个新的 Firebase 项目(如果您还没有)
对于要测试的每个示例应用,请使用示例应用的捆绑标识符(例如com.google.Database-Example
)创建一个新的 Firebase 应用
下载生成的GoogleService-Info.plist
并将其添加到 Xcode 项目中。
有关覆盖率报告生成说明,请参阅scripts/code_coverage_report/README Markdown 文件。
有关这些组件的任何特殊说明,请参阅以下部分。
对于特定的 Firebase Auth 开发,请参阅 Auth 示例自述文件,了解有关构建和运行 FirebaseAuth pod 以及各种示例和测试的说明。
Firebase 数据库集成测试可以针对本地运行的数据库模拟器或生产实例运行。
要针对本地模拟器实例运行,请在运行集成测试之前调用./scripts/run_database_emulator.sh start
。
要针对生产实例运行,请提供有效的GoogleServices-Info.plist
并将其复制到FirebaseDatabase/Tests/Resources/GoogleService-Info.plist
。当您的测试运行时,您的安全规则必须设置为公开。
Firebase 动态链接已弃用,不应在新项目中使用。该服务将于 2025 年 8 月 25 日关闭。
请参阅我们的动态链接弃用常见问题解答文档以获取更多指导。
对于特定的 Firebase 性能监控开发,请参阅 Performance README 以获取有关构建 SDK 的说明,并参阅 Performance TestApp README 以获取有关将 Performance 与开发测试应用程序集成的说明。
要运行存储集成测试,请按照 StorageIntegration.swift 中的说明进行操作。
推送通知只能发送到开发者门户中专门配置的应用程序 ID。为了测试接收推送通知,您需要:
将示例应用程序的捆绑包标识符更改为您在 Apple 开发者帐户中拥有的内容,并为推送通知启用该应用程序 ID。
您还需要将 APNs 提供商身份验证密钥或证书上传到 Firebase 控制台,位置为Project Settings > Cloud Messaging > [Your Firebase App] 。
确保您的 iOS 设备已作为测试设备添加到您的 Apple 开发者门户。
iOS 模拟器无法注册远程通知,也不会接收推送通知。要接收推送通知,请按照上述步骤操作并在物理设备上运行应用程序。
有关构建和测试 SDK 的说明,请参阅 Vertex AI for Firebase 自述文件。
Firebase 为 macOS、Catalyst 和 tvOS 提供官方测试版支持。 visionOS 和 watchOS 是社区支持的。感谢社区对许多多平台 PR 的贡献。
目前,Firebase 的大部分产品都可以跨 Apple 平台使用。仍然存在一些差距,特别是在visionOS和watchOS上。有关当前支持矩阵的详细信息,请参阅 Firebase 文档中的此图表。
在支持的情况下,visionOS 可以按预期工作,但通过 Swift Package Manager 的 Firestore 除外,它需要使用源发行版。
要启用 Firestore 源代码分发,请退出 Xcode 并使用FIREBASE_SOURCE_FIRESTORE
环境变量从命令行打开所需的项目: open --env FIREBASE_SOURCE_FIRESTORE /path/to/project.xcodeproj
。要返回使用 Firestore 的二进制发行版,请退出 Xcode 并像平常一样打开 Xcode,无需环境变量。
感谢社区的贡献,许多 Firebase SDK 现在可以在 watchOS 上编译、运行单元测试并运行。请参阅独立手表应用程序示例。
请记住,Firebase 并未正式支持 watchOS。虽然我们可以使用 GitHub Actions 捕获基本的单元测试问题,但可能会发生一些变化,导致 SDK 在 watchOS 上不再按预期工作。如果您遇到此问题,请提出问题。
在控制台中设置应用程序期间,您可能会遇到一个步骤,其中提到“检查应用程序是否已与我们的服务器通信”之类的内容。这依赖于 Analytics,并且不适用于 watchOS。可以安全地忽略该消息并继续,其余 SDK 将按预期工作。
watchOS 的支持有限。由于watchOS的限制,mach异常和信号崩溃不会被记录。 (SwiftUI中的崩溃是作为mach异常生成的,因此不会被记录)
感谢社区的贡献, FirebaseCombineSwift包含对 Apple 组合框架的支持。该模块目前正在开发中,尚不支持在生产环境中使用。有关更多详细信息,请参阅文档。
有关 Firebase Apple SDK 开源计划和方向的更多信息,请参阅路线图。
有关为 Firebase Apple SDK 做出贡献的更多信息,请参阅贡献。
此存储库的内容已根据 Apache 许可证 2.0 版获得许可。
您对 Firebase 的使用受 Firebase 服务服务条款的约束。