FirebaseStorageSwift 8.15.0-beta

FirebaseStorageSwift 8.15.0-beta

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存储库。

背景

有关覆盖pods源位置的说明和选项,请参阅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'

要通过已签出的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 12.2(或更高版本)

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 以在这些平台上进行开发/测试。由于 Xcode 从 10.2 开始,不能正确处理多平台 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
  • 在 Finder 中打开 Package.swift,或双击 Package.swift
  • Xcode 会打开项目
    • 选择要构建或运行的库的方案
    • 通过选择运行目的地及方案选择目标平台

添加新的 Firebase Pod

参见AddNewPod Markdown 文件。

管理头文件和导入

参见HeadersImports Markdown 文件。

代码格式化

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

Github Actions 将验证所有代码更改均以符合风格的方式进行。安装 clang-formatmint

brew install clang-format@13
brew install mint

运行单元测试

选择方案并按 Command-u 键构建组件并运行其单元测试。

运行示例应用

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

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

覆盖率报告生成

请参阅 scripts/code_coverage_report/README 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 了解将性能整合到 dev 测试应用的说明。

Firebase 存储空间

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

推送通知

推送通知只能发送到开发门户中专门配置的应用 ID。为了实际测试接收推送通知,您需要

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

iOS 模拟器

iOS 模拟器无法注册接收远程通知,并且不会接收到推送通知。要接收推送通知,您必须遵循上述步骤,并在物理设备上运行应用程序。

在 Apple 平台上构建 Firebase

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

目前,大多数 Firebase 产品已在 Apple 平台上提供。还有一些空缺,尤其是在 watchOS 上。有关当前支持矩阵的详细信息,请参阅 Firebase 文档中的此图表

watchOS

感谢社区的贡献,现在许多Firebase SDKs可以编译、运行单元测试并在watchOS上工作。请参阅独立的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服务条款约束。