Firebase Apple Open Source Development
此存储库包含所有 Apple 平台 Firebase SDK 源代码(除 FirebaseAnalytics 之外)。
Firebase 是一个应用开发平台,它提供工具帮助您构建、增长和变现您的应用。有关 Firebase 的更多信息,请访问 官方 Firebase 网站。
安装
请参阅以下子部分以获取关于不同安装方法的详细信息。如有可能,建议安装任何带有 Swift
后缀的库,以在使用 Swift 编写应用时获得最佳体验。
标准 pod 安装
前往 https://firebase.google.com/docs/ios/setup。
Swift包管理器
关于Swift包管理器支持的说明可以在此处找到,参见Swift Package Manager,Markdown文件SwiftPackageManager。
从GitHub安装
这些说明可以用来获取其他分支、标签或提交的Firebase仓库。
背景
查看Podfile语法参考,了解有关覆盖pods源位置的指令和选项。
访问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'
要通过checked out版本访问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 {名称这里}.podspec --local-sources=./ --auto-open --platforms=ios
- 在 App-iOS 构建设置中勾选 Mac 复选框
- 在“设置”>“签名和功能”选项卡中签名应用
- 在项目管家中单击 Pods
- 将签名添加到 iOS 主应用程序和单元测试目标中
- 选择 Unit-unit 模式
- 运行以构建和测试
或者在每个目标中禁用签名
- 转到“构建设置”选项卡
- 单击
+
- 选择
添加用户定义设置
- 添加
CODE_SIGNING_REQUIRED
设置,值为NO
Swift 包管理器
- 要启用测试方案:
./scripts/setup_spm_tests.sh
- 打开
Package.swift
或在 Finder 中双击Package.swift
- Xcode 将打开项目
- 选择一个库构建方案或运行测试套件的方案
- 通过选择运行目标与方案一起选择目标平台
添加新的 Firebase Pod
请参阅 AddNewPod 文件。
管理头文件和导入
请参阅 HeadersImports 文件。
代码格式化
为确保代码格式一致,在创建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项目
- 对于您想要测试的每个示例应用,使用样本应用的捆绑标识符(例如
com.google.Database-Example
)创建一个新的Firebase应用 - 下载生成的
GoogleService-Info.plist
并将其添加到Xcode项目。
生成覆盖率报告
请参阅 scripts/code_coverage_report/README Markdown 文件。
特定组件说明
以下各节提供了针对这些组件的特殊说明。
Firebase Auth
如果您正在进行特定的 Firebase Auth 开发,请参阅 Auth Sample README 了解构建和运行 FirebaseAuth pod 以及各种样本和测试的说明。
Firebase Database
Firebase Database 集成测试可以针对本地运行的数据库模拟器或生产实例运行。
要针对本地模拟器实例运行,在运行集成测试之前,调用 ./scripts/run_database_emulator.sh start
。
要针对生产实例运行,提供有效的 GoogleServices-Info.plist 并将其复制到 FirebaseDatabase/Tests/Resources/GoogleService-Info.plist
。在您的测试运行期间,您的安全规则必须设置为 公开。
Firebase Performance Monitoring
如果您正在进行特定的 Firebase Performance Monitoring 开发,请参阅 Performance README 了解构建 SDK 的说明,以及 Performance TestApp README 了解将性能与开发测试应用集成的说明。
Firebase 存储服务
要运行存储集成测试,请遵循StorageIntegration.swift中的说明。
推送通知
推送通知只能投递到开发者门户中特别配置的 App ID。为了实际测试接收推送通知,您需要
- 将示例应用的包标识符更改为您在 Apple 开发者账户中拥有的内容,并启用该 App ID 以发送推送通知。
- 您还需要将您的 APNs 提供商身份验证密钥或证书上传到 Firebase 控制台的 项目设置 > 云消息 > [您的 Firebase App]。
- 确保您的 iOS 设备在 Apple 开发者门户中添加为测试设备。
iOS 模拟器
iOS 模拟器无法注册远程通知,且不会接收推送通知。为了接收推送通知,您必须遵循上述步骤并在物理设备上运行应用。
在苹果平台上使用 Firebase 构建
Firebase 8.9.0 增加了 macOS、Catalyst 和 tvOS 的官方 beta 支持。watchOS 继续得到社区支持。感谢社区贡献者对许多多平台 PR 的贡献。
目前,Firebase 的多数产品已在苹果平台上可用。仍有一些差距,特别是在 watchOS。有关当前支持矩阵的详细信息,请参见 Firebase 文档中的此图表 此图表。
watchOS
感谢社区贡献,现在许多 Firebase SDKs 已经在 watchOS 上编译、运行单元测试并且工作正常。请参阅 独立手表应用程序示例。
请注意,watchOS 并非 Firebase 的官方支持。虽然我们可以在 GitHub Actions 中捕获基本的单元测试问题,但仍可能有一些更改导致 SDK 在 watchOS 上不再按预期工作。如果您遇到这种情况,请 报告问题。
在控制台中的应用程序设置过程中,您可能会看到一个步骤,提到类似于“检查应用程序是否已与我们服务器通信”的内容。这依赖于 Analytics,并且在 watchOS 上无法工作。 您可以将此消息忽略并继续操作,其余的 SDK 将按预期工作。
额外的 Crashlytics 注释
- watchOS 支持有限。由于 watchOS 的限制,不会记录机器异常和信号崩溃。(在 SwiftUI 中的崩溃会生成机器异常,所以不会记录)
合并
感谢社区的贡献,FirebaseCombineSwift 包含了对 Apple Combine 框架的支持。此模块目前正在开发中,尚未支持在生产环境中使用。有关更多详细信息,请参阅文档。
路线图
有关 Firebase Apple SDK 开源计划和方向的更多信息,请参阅路线图。
贡献
有关贡献 Firebase Apple SDK 的更多信息,请参阅贡献。
许可
此存储库的内容受Apache License, version 2.0许可。
您对 Firebase 的使用受Firebase 服务条款约束。