FirebaseMessaging 11.0.0

FirebaseMessaging 11.0.0

许可 Apache-2.0
发布最新版本2024年7月

Google维护。



 
依赖
FirebaseInstallations~> 11.0
FirebaseCore~> 11.0
GoogleUtilities/AppDelegateSwizzler~> 8.0
GoogleUtilities/Reachability~> 8.0
GoogleUtilities/Environment~> 8.0
GoogleUtilities/UserDefaults~> 8.0
GoogleDataTransport~> 10.0
nanopb~> 3.30910.0
 


Firebase Apple开源项目开发

此存储库包含 Firebase SDK 源代码,除了 FirebaseAnalytics。

Firebase 是一个应用程序开发平台,拥有帮助您构建、增长和盈利应用程序的工具。更多有关 Firebase 的信息可以在官方 Firebase 网站上找到。

安装

有关不同安装方法的详细信息,请参阅下面的子部分。如有可用,建议安装带有Swift后缀的任何库,以便在用 Swift 编写应用程序时获得最佳体验。

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

标准 pod 安装

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

Swift 包管理器

有关 Swift 包管理器支持的说明和选项,请参阅 SwiftPackageManager Markdown 文件。

从 GitHub 安装

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

背景

有关覆盖 pod 源位置的说明和选项,请参阅 Podfile 语法参考

访问 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

从框架或库中使用 Firebase

从框架或库中使用 Firebase

开发

要在本仓库中开发 Firebase 软件,请确保您至少拥有以下软件:

  • Xcode 14.1(或更高版本)

CocoaPods 仍然是官方的开发方式,但现在绝大多数仓库支持使用 Swift Package Manager 进行开发。

财富宝币库

安装

为你要开发的库

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

注意:如果财富宝币库缓存过时,你可能需要在执行 pod gen 命令之前运行 pod repo update

注意:将 --platforms 选项设置为 macostvos 以开发测试这些平台。自 10.2 以来,Xcode 未正确处理多平台财富宝币库工作空间。

财富宝币库有一个自带的 Xcode 项目。请参阅 财富宝币库/README Markdown 文件。

为催化剂开发

  • pod gen {name here}.podspec --local-sources=./ --auto-open --platforms=ios
  • 在 App-iOS 构建设置中勾选 Mac 复选框
  • 在“设置”>“签名与能力”标签中签名 App
  • 在项目管理器中点击“Pods”
  • 将签名添加到 iOS 主应用程序和单元测试目标中
  • 选择“单元单元方案”
  • 运行它以构建和测试

或者取消每个目标的签名

  • 转到“构建设置”标签
  • 点击 +
  • 选择 添加用户定义设置
  • 添加 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 Actions 将验证任何代码更改是否符合风格规范。安装 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. 为每个要测试的示例应用程序,使用示例应用程序的包标识符(例如 com.google.Database-Example)创建一个新的 Firebase 应用程序
  4. 下载生成的 GoogleService-Info.plist 并将其添加到 Xcode 项目中。

覆盖率报告生成

参阅 scripts/code_coverage_report/README Markdown 文件。

特定组件说明

请参阅下面部分,了解有关那些组件的任何特殊说明。

Firebase 身份验证

如果您正在进行特定的 Firebase 身份验证开发,请参阅 身份验证示例的 README 文件,以获取构建和运行 Fairfax pod 的说明,以及各种示例和测试。

Firebase 数据库

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

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

要针对生产实例运行,提供有效的 GoogleServices-Info.plist 并将其复制到 FirebaseDatabase/Tests/Resources/GoogleService-Info.plist。在测试运行期间,您的安全规则必须设置为 公开

Firebase 性能监控

如果您正在进行特定的 Firebase 性能监控开发,请参阅 性能 README 以获取有关构建 SDK 的说明,以及 性能测试应用程序 README 以获取关于将性能与开发测试应用程序集成的说明。

Firebase 存储

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

推送通知

推送通知只能投递到开发者门户中特别配置的应用程序 ID。为了真正测试接收推送通知,您需要

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

iOS 模拟器

iOS 模拟器无法注册远程通知,并且不会接收到推送通知。要接收推送通知,您需要按照上述步骤进行操作,并在物理设备上运行应用程序。

在苹果平台上使用 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 上按预期工作。如果您遇到这种情况,请提交问题

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

额外的 Crashlytics 说明

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

Combine

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

路线图

关于 Firebase Apple SDK 开源计划及方向的更多信息,请参阅 路线图

贡献

有关向 Firebase Apple SDK 贡献的更多信息,请参阅 贡献指南

分析

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

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