设备端转换的FirebaseAnalytics 11.0.0

设备端转换的FirebaseAnalytics 11.0.0

Google维护。



  • Google, Inc.


Firebase Apple 开源开发

该仓库包含所有基于Apple平台的Firebase SDK的源代码,除了FirebaseAnalytics。

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 仓库。

背景

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

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

通过 checkout 版本的 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

安装以下软件

您要开发的项目Pod

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.md 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 Package Manager

  • 要启用测试方案:运行 ./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项目,请创建一个新的Firebase项目
  3. 对于每个要测试的示例应用,创建一个新的Firebase应用,其包标识符与示例应用相同(例如,com.google.Database-Example
  4. 下载生成的 GoogleService-Info.plist 并将其添加到Xcode项目中。

生成覆盖率报告

关于覆盖率报告生成说明,请参阅 scripts/code_coverage_report/README Markdown 文件。

特定组件说明

有关这些组件的任何特殊说明,请参见下面的章节。

Firebase Auth

对于特定的 Firebase Auth 开发,请参阅 Auth Sample 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 存储空间

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

推送通知

推送通知只能发送到开发门户网站中特殊配置的应用程序标识符。要测试接收推送通知,您需要

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

iOS 模拟器

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

在苹果平台上使用 Firebase 构建

Firebase 8.9.0 引入了官方对 macOS、Catalyst 和 tvOS 的测试支持。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 License, version 2.0许可。

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