Firebase Apple 开源开发
此存储库包含除 FirebaseAnalytics 外所有用于 Apple 平台 Firebase SDK 的源代码。
Firebase 是一个应用程序开发平台,具有帮助您构建、增长和盈利应用程序的工具。有关 Firebase 的更多信息,请参阅 官方 Firebase 网站。
安装
请查看下文中的副标题以了解有关不同安装方法的详细信息。如果可用,建议安装任何以 Swift
结尾的库,以便在用 Swift 编写应用程序时获得最佳体验。
标准 pod 安装
有关标准 pod 安装的说明,请访问:https://firebase.google.com/docs/ios/setup。
Swift 包管理器
关于 Swift 包管理器支持的说明可以在此处找到:在SwiftPackageManager.md Markdown 文件中。
从 GitHub 安装
这些说明可用于访问其他分支、标签或提交的 Firebase 仓库。
背景
请参阅 Podfile 语法参考,了解有关覆盖 pod 源位置说明和选项。
访问 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'
要访问 FirebaseMessaging,请使用已签出的 firebase-ios-sdk 仓库版本
pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk'
pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk'
Carthage(仅适用于iOS)
有关实验性Carthage分布的说明,请参阅Carthage.md。
从框架或库中使用Firebase
有关从框架或库中使用Firebase的详细信息,请参阅firebase_in_libraries.md。
开发
要在此存储库中开发Firebase软件,请确保您至少有以下软件:
- Xcode 14.1(或更高版本)
CocoaPods仍然是开发的标准方法,但现在库的支持多数现在支持使用Swift Package Manager进行开发。
CocoaPods
请安装以下软件:
- CocoaPods 1.10.0(或更高版本)
- CocoaPods生成
对于您想要开发的pods:
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框
- 在设置 -> 签名与能力选项卡中为App签名
- 在项目管理器中点击Pods
- 将签名添加到iOS主机应用和单元测试目标
- 选择Unit-unit方案
- 运行它以构建和测试
或者,禁用每个目标的签名
- 转到构建设置选项卡
- 点击
+
- 选择
添加用户定义设置
- 添加名为
CODE_SIGNING_REQUIRED
的设置,值为NO
Swift包管理器
- 要启用测试方案:
./scripts/setup_spm_tests.sh
- 在Finder中打开或双击
Package.swift
- Xcode将打开项目
- 选择库构建或运行测试套件的方案
- 通过选择方案和运行目标选择目标平台
添加新的Firebase Pod
有关详细信息,请参阅AddNewPod Markdown文件。
管理头文件和导入
有关管理头文件和导入的信息,请参阅HeadersImports Markdown文件。
代码格式化
为确保代码格式统一,在创建pull request(PR)之前,运行脚本./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项目。
- 为要测试的每个示例应用创建一个新的Firebase应用,具有示例应用的bundle标识符(例如,
com.google.Database-Example
)。 - 下载生成的
GoogleService-Info.plist
并将其添加到Xcode项目。
覆盖率报告生成
关于覆盖率报告生成的说明,请参阅scripts/code_coverage_report/README
Markdown文件。
特定组件说明
请参见下文各节,了解这些组件的特殊说明。
Firebase认证
对于特定的Firebase认证开发,请参考Auth示例README,了解如何构建和运行FirebaseAuth pod以及各种示例和测试的相关说明。
Firebase数据库
Firebase数据库集成测试可以针对本地运行的模拟器或针对生产实例运行。
要针对本地模拟器实例运行,在运行集成测试之前,请调用./scripts/run_database_emulator.sh start
。
要针对生产实例运行,提供有效的GoogleServices-Info.plist
并将其复制到FirebaseDatabase/Tests/Resources/GoogleService-Info.plist
。在测试运行期间,您的安全规则必须设置为公开。
Firebase性能监控
对于特定的Firebase性能监控系统开发,请参阅性能README,了解如何构建SDK,以及性能TestApp README,了解如何集成性能到开发测试应用的相关说明。
Firbase 存储服务
要运行存储集成测试,请按照 StorageIntegration.swift 中的说明进行操作。
推送通知
推送通知只能发送到开发者门户网站上的特定配置的 App ID。为了测试接收推送通知,您需要
- 将示例应用的包标识符更改为您在自己的 Apple Developer 账户中拥有的内容,并启用该 App ID 以进行推送通知。
- 您还需要将您的 APNs 提供商身份验证密钥或证书上传到 Firebase 控制台,在 项目设置 > 云消息 > [您的 Firebase 应用]。
- 确保您的 iOS 设备已添加到您的 Apple Developer 门户网站作为测试设备。
iOS 模拟器
iOS 模拟器无法注册远程通知且不会接收推送通知。要接收推送通知,按照上述步骤操作并在真实设备上运行应用程序。
在 Apple 平台上使用 Firebase 进行构建
watchOS
额外的崩溃率学笔记
Combine
路线图
有关Firebase Apple SDK开源计划和方向的更多信息,请参阅路线图。
贡献
有关如何贡献到Firebase Apple SDK的更多信息,请参阅贡献。
许可证
本存储库内容遵循Apache许可证第2.0版。
您对Firebase的使用受Firebase服务条款的约束。