FirebaseAppCheckInterop 11.0.0

FirebaseAppCheckInterop 11.0.0

Google 维护。




Firebase Apple 开源开发

此仓库包含除 FirebaseAnalytics 以外所有 Apple 平台 Firebase SDK 的源代码。

Firebase 是一个应用程序开发平台,提供工具帮助您构建、增长和盈利您的应用程序。有关 Firebase 的更多信息,请访问 官方 Firebase 网站

安装

在下文中详细的安装方法子项中查看。如果可用,建议安装任何以 Swift 后缀为后缀的库,以获得在 Swift 中编写应用程序时最佳体验。

  1. 标准 pod install
  2. Swift 包管理器
  3. 从 GitHub 仓库安装
  4. 实验性 Carthage

标准 pod install

有关标准 pod install 的说明,请访问:https://firebase.google.com/docs/ios/setup

Swift包管理器

关于Swift包管理器支持的说明可以在SwiftPackageManager.md Markdown文件中找到。

从GitHub安装

这些说明可用于访问其他分支、标签或提交的Firebase存储库。

背景

请参阅Podfile语法参考以获取有关覆盖Pod源位置的说明和选项。

访问Firebase源快照

所有官方版本都标记在这个存储库中,并通过CocoaPods提供。要访问本地源快照或未发布分支,请使用以下Podfile指令:

通过分支访问FirebaseFirestore

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.md中找到。

在框架或库中使用Firebase

有关在框架或库中使用Firebase的更多详细信息,请参阅firebase_in_libraries.md

开发

为了在此存储库中开发Firebase软件,请确保您至少有以下软件

  • xcode 14.1(或更高版本)

CocoaPods仍然是官方的开发方式,但现在许多存储库支持使用Swift Package Manager进行开发。

CocoaPods

安装以下软件

您想要开发的自定义pods

pod gen Firebase{name here}.podspec --local-sources=./ --auto-open --platforms=ios

注意:如果CocoaPods缓存已过时,请在执行pod gen命令之前,需要运行pod repo update

注意:将--platforms选项设置为macostvos以用于这些平台的开发生成。自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 Markdown 文件。

管理头文件和导入

有关管理头文件和导入的信息,请参阅 HeadersImports Markdown 文件。

代码格式化

为确保代码格式的一致性,在创建代码合并请求(PR)之前,请运行脚本./scripts/check.sh

GitHub操作将验证任何代码变更是否符合样式规范。安装clang-formatmint

brew install clang-format@16
brew install mint

运行单元测试

选择一个方案,然后按Command-u构建组件并运行其单元测试。

运行示例应用

要运行示例应用和集成测试,您需要一个有效的GoogleService-Info.plist 文件。Firebase Xcode项目包含没有真实值的占位符plist文件,但可以替换为真实的plist文件。要获取自己的GoogleService-Info.plist文件

  1. 前往Firebase控制台
  2. 如果您还没有,请创建一个新的Firebase项目
  3. 对于您想要测试的每个示例应用,创建一个新的Firebase应用,其使用示例应用的包标识符(例如,com.google.Database-Example
  4. 下载生成的GoogleService-Info.plist并将其添加到Xcode项目中

生成覆盖率报告

有关代码覆盖率报告的说明,请参阅scripts/code_coverage_report/README Markdown文件。

特定组件说明

请参阅下文,了解该组件的任何特殊说明。

Firebase身份验证

有关特定Firebase身份验证开发的信息,请参阅Auth示例README,了解构建和运行FirebaseAuth库及各种示例和测试的说明。

Firebase数据库

可以通过本地运行的数据库模拟器或生产实例来运行Firebase数据库集成测试。

若要在本地模拟器实例上运行,在运行集成测试之前,请调用./scripts/run_database_emulator.sh start

若要在生产实例上运行,提供一个有效的GoogleServices-Info.plist并将其复制到FirebaseDatabase/Tests/Resources/GoogleService-Info.plist。在测试运行期间,必须设置Security Rule为公开

Firebase性能监控

有关Firebase性能监控的特定开发信息,请参阅性能README,了解构建SDK的说明,以及性能TestApp README,了解将性能集成到开发测试应用的说明。

Firebase存储

要运行存储集成测试,请按照StorageIntegration.swift中的说明操作。

推送通知

推送通知只能发送到开发门户中专门配置的App ID。为了测试接收推送通知,您需要

  1. 将示例应用的包标识符更改为您在Apple开发者账户中拥有的标识符,并启用该App ID以发送推送通知。
  2. 您还需要将APNs提供商身份验证密钥或证书上传到Firebase控制台,位置在项目设置 > 云消息 > [您的Firebase应用]
  3. 请确保您的iOS设备已添加到Apple开发者门户中作为测试设备。

iOS模拟器

iOS模拟器无法注册远程通知也无法接收推送通知。要接收推送通知,请按照上述步骤操作并在实际设备上运行应用。

在Apple平台上使用Firebase进行构建

Firebase 8.9.0版本引入了对macOS、Catalyst、tvOS的官方beta支持。watchOS仍然由社区支持。感谢社区贡献者对许多多平台PR的贡献。

目前,Firebase的大多数产品在Apple平台上都可用。还有一些差距,特别是在watchOS上。有关当前支持矩阵的详细信息,请参阅Firebase文档中的此图表

watchOS

得益于社区的贡献,许多Firebase SDK现在在watchOS上编译、运行单元测试并且正常运行。请参阅独立手表应用示例

请注意,watchOS不是Firebase的官方支持平台。虽然我们可以通过GitHub Actions捕获基本的单元测试问题,但在某些情况下,SDK可能不再在watchOS上正常工作。如果您遇到这种情况,请提交一个问题

在控制台中的应用设置期间,您可能会遇到一个步骤,其中会提到类似于“检查应用是否已与我们的服务器通信”的内容。这依赖于分析,在watchOS上无法工作。**您可以忽略此消息并继续操作**,其余的SDK将按预期工作。

附加Crashlytics说明

  • watchOS支持有限。由于watchOS的限制,记录了mach异常和信号崩溃。(发生在SwiftUI中的崩溃生成mach异常,因此不会记录)

Combine

感谢社区的贡献,FirebaseCombineSwift 包含了对Apple的Combine框架的支持。此模块目前仍在开发中,不支持在生产环境中使用。有关更多详情,请参阅文档

路线图

查看路线图,以了解关于 Firebase Apple SDK 开源方案和方向的更多信息。

贡献

查看贡献,获取有关如何向 Firebase Apple SDK 贡献的更多信息。

许可证

本存储库的内容受Apache 许可证,版本 2.0许可。

您对 Firebase 的使用受Firebase 服务条款约束。