FirebaseAppDistribution 11.0.0-beta

FirebaseAppDistribution 11.0.0-beta

谷歌维护。



 
依赖项
FirebaseCore~> 11.0
GoogleUtilities/AppDelegateSwizzler~> 8.0
GoogleUtilities/UserDefaults~> 8.0
FirebaseInstallations~> 11.0
 

  • 谷歌公司


Firebase Apple开源开发

该仓库包含除了FirebaseAnalytics之外的所有苹果平台Firebase SDK源代码。

Firebase是一个应用开发平台,其中包含帮助您构建、扩展和货币化应用的各种工具。有关Firebase的更多信息,请访问官方Firebase网站

安装

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

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

标准pod安装

访问 https://firebase.google.com/docs/ios/setup

Swift Package Manager

关于Swift Package Manager支持的说明可以在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'

要通过检出版本的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进行开发。

CocoaPods

安装

为您要开发的pod

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

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

注意:将--platforms选项设置为macos或tvos以开发/测试这些平台。从10.2开始,Xcode无法正确处理多平台CocoaPods工作区。

Firestore有一个自包含的Xcode项目。请参阅Firestore/README.md中的Markdown文件。

为Catalyst开发

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

或者在每个目标中禁用签名

  • 转到构建设置标签
  • 点击 +
  • 选择 添加用户定义设置
  • 添加带有值为 NOCODE_SIGNING_REQUIRED 设置

Swift包管理器

  • 要启用测试方案: ./scripts/setup_spm_tests.sh
  • open 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. 对于您想要测试的每个示例应用程序,使用示例应用程序的包识别符创建一个新的Firebase应用程序(例如,com.google.Database-Example
  4. 下载生成的GoogleService-Info.plist并将其添加到Xcode项目中。

生成覆盖率报告

参见scripts/code_coverage_report/README.md的Markdown文件。

特定组件说明

请参阅下文页面以了解这些组件的任何特定说明。

Firebase Auth

如果您正在进行特定的 Firebase Auth 开发,请参阅 Auth 示例 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 以获取有关将性能集成到开发测试应用的说明。

Firebase存储

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

推送通知

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

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

iOS模拟器

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

在Apple平台上的Firebase构建

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

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

watchOS

感谢社区contributions,现在许多 Firebase SDK能够在watchOS上编译、运行单元测试并正常运行。参见独立的 Watch App 示例

请注意,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服务使用条款管理。