FirebaseMessagingInterop 11.0.0

FirebaseMessagingInterop 11.0.0

Google维护。




Firebase Apple 开源开发

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

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

安装

请参阅下述子部分以了解有关不同安装方法的详细信息。如果适用,建议使用带有 Swift 后缀的库进行安装,以便在用 Swift 编写应用程序时获得最佳体验。

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

标准 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'

要通过检查出的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 {name here}.podspec --local-sources=./ --auto-open --platforms=ios
  • 在App-iOS构建设置中勾选Mac框
  • 在设置中签名应用,签名的标签页
  • 在项目管理者中点击Pods
  • 将签名添加到iOS主机应用和单元测试目标中
  • 选择单元-test方案
  • 运行它以构建和测试

或者选择禁用每个目标的签名

  • 转到构建设置标签页
  • 点击 +
  • 选择 添加用户定义设置
  • 添加 CODE_SIGNING_REQUIRED 设置,其值为 NO

Swift Package Manager

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

添加新的Firebase Pod

有关详细信息,请参阅AddNewPod.mdMarkdown文件。

管理头文件和导入

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

代码格式化

为确保代码格式的一致性,在创建拉取请求(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 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性能监控

对于特定的 Firebase 性能监控开发,请参阅性能 README,了解构建 SDK 的说明,以及性能 TestApp README,了解如何将性能集成到开发测试 App。

_firestore_storage_

要运行存储集成测试,请参考StorageIntegration.swift中的说明。

推送通知

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

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

iOS 模拟器

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

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

Firebase 8.9.0 引入了针对 macOS、Catalyst 和 tvOS 的官方 beta 支持。watchOS 继续由社区支持。感谢社区贡献的许多多平台 PR。

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

watchOS

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

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

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

额外的Crashlytics说明

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

Combine

多亏了社区的贡献,FirebaseCombineSwift包含了苹果Combine框架的支持。此模块目前正在开发中,尚不支持在生产环境中使用。欲了解更多信息,请参阅文档

路线图

参看路线图了解更多关于 Firebase Apple SDK 开源计划和方向的信息。

贡献

参看贡献了解如何为 Firebase Apple SDK 做出贡献的具体信息。

许可协议

本存储库的内容遵循Apache 许可协议,版本 2.0

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