Firebase Apple 开源开发
此仓库包含 Firebase SDK 所有 Apple 平台源代码(除了 FirebaseAnalytics)。
Firebase 是一个应用开发平台,提供了帮助您构建、扩展和盈利应用的工具。关于 Firebase 的更多信息可以在Firebase 官方网站上找到。
安装
请参阅下面的子部分以获取有关不同安装方法的详细信息。在可行的情况下,建议安装带有 Swift
后缀的任何库,以在使用 Swift 编写应用时获得最佳体验。
标准 pod 安装
访问 https://firebase.google.com/docs/ios/setup。
Swift 包管理器
有关支持 Swift 包管理器的说明,请参阅 Swift 包管理器网站 或 SwiftPackageManager Markdown 文件。
从 GitHub 安装
这些说明可以用于访问 GitHub 上的其他分支、标签或提交的 Firebase 仓库。
背景
有关替换 pod 源位置的说明和选项,请参阅 Podfile 语法参考
访问 Firebase 源快照
所有官方发布均在此仓库中标记,并通过 CocoaPods 提供。要访问本地源快照或未发布分支,请使用如下 Podfile 指令:
要通过分支访问 Firestore
pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master'
pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'master'
要通过检查出的 firebase-ios-sdk 仓库版本访问 FirebaseMessaging,执行如下操作
pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk'
pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk'
Carthage (仅限iOS)
关于实验性质的Carthage分发的说明请参考Carthage。
从框架或库中使用Firebase
开发
要在本存储库中开发Firebase软件,请确保您至少有如下软件:
- Xcode 14.1(或更高版本)
CocoaPods仍然是开发的标准方式,但现在仓库的大部分内容都支持使用Swift Package Manager进行开发。
CocoaPods
安装
- CocoaPods 1.10.0(或更高版本)
- CocoaPods 生成
您想要开发的pod
pod gen Firebase{name here}.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文件。
针对Catalyst的开发
执行 pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios
- 在App-iOS构建设置中勾选Mac选项
- 在设置中签名的“签名与能力”选项卡中签名应用
- 在项目管理器中单击Pods
- 将签名添加到iOS主应用和单元测试目标
- 选择单元测试的单元方案
- 运行它以构建和测试
或者禁用每个目标的签名
- 转到构建设置选项卡
- 单击
+
- 选择
添加用户定义设置
- 添加
CODE_SIGNING_REQUIRED
设置,值设置为NO
Swift包管理器
- 要启用测试方案:
./scripts/setup_spm_tests.sh
- 在Finder中打开
Package.swift
或双击Package.swift
- Xcode将打开项目
- 选择要构建的库或要运行的测试套件的方案
- 通过选择方案以及运行目标来选择目标平台
添加新的Firebase Pod
请参阅AddNewPod.md
Markdown文件。
管理头文件和导入
请参阅HeadersImports.md
Markdown文件。
代码格式化
为确保代码格式一致,在创建Pull Request前运行脚本./scripts/check.sh。
GitHub Actions将验证任何代码更改是否以符合风格的方式进行。安装clang-format
和mint
。
brew install clang-format@16
brew install mint
运行单元测试
选择一个方案,然后按Command-u构建组件并运行其单元测试。
运行示例应用
要运行示例应用和集成测试,您需要一个有效的GoogleService-Info.plist
文件。Firebase Xcode项目包含没有真实值的占位符plist文件,但可以被真实的plist文件替换。获取您自己的GoogleService-Info.plist
文件
- 访问Firebase控制台
- 如果您还没有,创建一个新的Firebase项目
- 对于您要测试的每个示例应用,使用示例应用的bundle标识符创建一个新的Firebase应用(例如,
com.google.Database-Example
) - 下载生成的
GoogleService-Info.plist
并将其添加到Xcode项目。
生成覆盖率报告
请参阅 scripts/code_coverage_report/README Markdown 文件。
特定组件说明
请参阅以下部分,以获取针对这些组件的特殊说明。
Firebase认证
如果您正在做特定的Firebase认证开发,请参阅认证示例README,其中包含有关构建和运行Firebase认证模块以及各种示例和测试的说明。
Firebase数据库
Firebase数据库集成测试可以针对本地运行的数据库模拟器或针对生产实例运行。
要在本地模拟器实例上运行,请在运行集成测试之前进行 ./scripts/run_database_emulator.sh start
调用。
要针对生产实例运行,提供有效的GoogleServices-Info.plist并将其复制到FirebaseDatabase/Tests/Resources/GoogleService-Info.plist
。当您的测试运行时,您的安全规则必须设置为公共。
Firebase性能监控
如果您正在做特定的Firebase性能监控开发,请参阅性能README,其中包含有关构建SDK的说明,并参阅性能TestApp README,其中包含有关将性能与开发测试应用程序集成的说明。
Firebase 存储服务
要运行存储整合测试,请按照StorageIntegration.swift中的说明操作。
推送通知
推送通知只能发送到开发者门户中特殊配置的应用程序标识符。为了实际测试接收推送通知,您需要
- 更改示例应用的包标识符为您在 Apple 开发者账户中拥有的内容,并启用该应用程序标识符进行推送通知。
- 您还需要将您的 APNs 提供程序身份验证密钥或证书上传到 Firebase 控制台,位置在 项目设置 > 云消息 > [您的 Firebase 应用]。
- 确保您的 iOS 设备已添加到 Apple 开发者门户中以作为测试设备。
iOS 模拟器
iOS 模拟器无法注册远程通知,并且不会接收推送通知。为了接收推送通知,您需要按照上述步骤操作,并在实物设备上运行应用程序。
在 Apple 平台上使用 Firebase 构建
Firebase 8.9.0 引入了针对 macOS、Catalyst 和 tvOS 的官方测试版支持。watchOS 继续受到社区支持。感谢社区贡献了众多多平台 PR。
截至目前,Firebase的多数产品在苹果平台上都可用。但仍有一些差距,尤其是在watchOS上。有关当前支持矩阵的详细信息,请参阅Firebase文档中的此图表。
watchOS
感谢社区的贡献,许多Firebase SDK现在可以在watchOS上编译、运行单元测试并工作。请参阅独立手表应用样本。
请注意,watchOS不是Firebase的官方支持平台。虽然我们可以通过GitHub Actions捕获基本的单元测试问题,但可能会有一些更改导致SDK在watchOS上不再按预期工作。如果您遇到这种情况,请创建一个问题。
在控制台中的应用设置过程中,您可能会遇到提到诸如“检查应用是否已与我们服务器通信”的步骤。这依赖于分析,在watchOS上不会工作。您可以**安全忽略该消息并继续**,其余的SDK将按预期工作。
附加Crashlytics说明
- watchOS支持有限。由于watchOS的限制,不会记录mach异常和信号崩溃。(SwiftUI中的崩溃会生成mach异常,因此也不会被记录。)
Combine
感谢社区贡献,FirebaseCombineSwift包含了对苹果Combine框架的支持。此模块目前正在开发中,尚不支持在生产环境中使用。更多详细信息,请参阅说明文档。
路线图
有关 Firebase 苹果 SDK 开源计划和方向的更多信息,请参阅 路线图。
贡献
有关为 Firebase 苹果 SDK 贡献的更多信息,请参阅 贡献。
许可证
本存储库的内容受 Apache 许可证,版本 2.0 许可。
您使用 Firebase 由 Firebase 服务条款 管理。