GoogleUtilitiesComponents 1.1.0

GoogleUtilitiesComponents 1.1.0

Google 维护。



  • Google, Inc.

Version License Platform

Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status Actions Status

Firebase Apple 开源开发

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

Firebase 是一个应用开发平台,提供了帮助您构建、发展和盈利应用的工具。更多关于 Firebase 的信息可以在 官方 Firebase 网站 上找到。

安装

请参见下面的子部分,以了解不同安装方法的细节。

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

标准 pod 安装

转到 https://firebase.google.com/docs/ios/setup

Swift 包管理器

有关 Swift 包管理器支持的指令可在 SwiftPackageManager 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'

要访问 FirebaseMessaging,请通过检出 firebase-ios-sdk 仓库的版本执行

pod 'FirebaseCore', :path => '/path/to/firebase-ios-sdk'
pod 'FirebaseMessaging', :path => '/path/to/firebase-ios-sdk'

Carthage(仅限 iOS)

关于实验性 Carthage 分发的说明请参阅Carthage

从框架或库中使用 Firebase

从框架或库中使用 Firebase

开发

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

  • Xcode 12.2(或更高版本)

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

CocoaPods

安装

为您要开发的 pod

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

注意:如果 CocoaPods 缓存已过时,您可能需要运行 pod repo update 命令,然后再运行 pod gen 命令。

注意:设置 --platforms 选项为 macostvos 以开发/测试这些平台。自 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 Package Manager

  • 要启用测试方案:./scripts/setup_spm_tests.sh
  • open Package.swift 或在 Finder 中双击 Package.swift
  • Xcode 将打开项目
    • 选择要构建的库或要运行的测试套件的方案
    • 通过选择方案与运行目标一起选择目标平台

添加新的 Firebase Pod

参阅 AddNewPod Markdown 文件。

管理头文件和导入

参阅 HeadersImports Markdown 文件。

代码格式化

为确保代码格式一致,在创建 pull request 之前运行脚本 ./scripts/check.sh

G GitHub Actions 会验证任何代码更改是否以符合风格的方式进行。安装 clang-formatmint

brew install clang-format@13
brew install mint

运行单元测试

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

运行示例 App

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

  1. 访问 Firebase 控制台
  2. 如果您还没有,创建一个新的 Firebase 项目
  3. 为每个您想测试的示例 App,创建一个具有与示例 App 相同的 bundle 标识符的新 Firebase App(例如,com.google.Database-Example
  4. 下载生成的 GoogleService-Info.plist 并将其添加到 Xcode 项目中。

覆盖率报告生成

请参考scripts/code_coverage_report/README Markdown文件。

特定组件说明

以下各节包含对那些组件的特殊说明。

Firebase身份验证

如果您正在特定的 Firebase身份验证开发中,请参考身份验证示例 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 获取将性能集成到开发测试应用的说明。

Firebase Storage

要运行存储集成测试,请参阅FIRStorageIntegrationTests.m中的说明。

推送通知

推送通知只能发送到开发门户网站中特别配置的App ID。为了实际测试接收推送通知,你需要

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

iOS模拟器

iOS模拟器不能注册远程通知,也不会接收推送通知。为了接收推送通知,你必须按照上面的步骤操作,并在物理设备上运行应用程序。

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

Firebase 8.9.0提供了对macOS、Catalyst和tvOS的官方beta支持。watchOS将继续得到社区支持。感谢社区贡献的许多多平台PR。

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

watchOS

多亏了社区的贡献,许多Firebase SDK现在可以在watchOS上编译、运行单元测试并正常工作。请参阅《独立手表应用示例》。

请注意,Firebase不正式支持watchOS。虽然我们可以使用GitHub Actions捕获基本的单元测试问题,但SDK在watchOS上的某些更改可能不再按预期工作。如果您遇到这种情况,请提交问题

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

额外的Crashlytics注释

  • watchOS支持有限。由于watchOS的限制,不会记录mac异常和信号崩溃。(SwiftUI中的崩溃生成为mac异常,因此也不会被记录。)

Combine

感谢社区的贡献,FirebaseCombineSwift 包含了对Apple Combine框架的支持。此模块目前正在开发中,尚未用于生产环境。更多详细信息,请参阅文档

路线图

有关Firebase Apple SDK开源计划方向的更多信息,请参阅《路线图》。

贡献

有关贡献到Firebase Apple SDK的更多信息,请参阅《贡献》。

许可证

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

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