FirebaseStorage 11.0.0

FirebaseStorage 11.0.0

许可证 Apache-2.0
发布日期最后发布日期2024年7月

Google维护。



 
依赖
FirebaseAppCheckInterop~> 11.0
FirebaseAuthInterop~> 11.0
FirebaseCore~> 11.0
FirebaseCoreExtension~> 11.0
GTMSessionFetcher.Core~> 3.4
GoogleUtilities.Environment~> 8.0
 


Firebase Apple Open Source Development

此仓库包含除 FirebaseAnalytics 以外的所有 Apple 平台 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 的说明和选项,包括如何覆盖 pod 源位置,可以在 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'

仅限 iOS 的 Carthage

关于实验性 Carthage 分发的说明,请参阅 Carthage

从框架或库中使用 Firebase

从框架或库中使用 Firebase

开发

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

  • Xcode 14.1(或更高版本)

CocoaPods 仍然是官方的开发方式,但现在库的大部分都支持使用 Swift 包管理器进行开发。

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 Markdown 文件。

Catalyst 开发

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

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

  • 转到构建设置选项卡
  • 点击 +
  • 选择 添加用户定义设置
  • 添加 CODE_SIGNING_REQUIRED 设置,并将其值设置为 NO

Swift 软件包管理器

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

添加新的 Firebase Pod

参考 AddNewPod Markdown 文件。

管理头文件和导入

参考 HeadersImports Markdown 文件。

代码格式化

为了确保代码格式一致性,在创建 Pull Request 之前,运行脚本 ./scripts/check.sh

Github Actions 将验证所有代码更改是否按照规范方式进行。安装 clang-formatmint

brew install clang-format@16
brew install mint

运行单元测试

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

运行示例应用

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

  1. 前往 Firebase 控制台
  2. 如果您还没有,创建一个新的 Firebase 项目
  3. 对于您要测试的每个示例应用,创建一个新的 Firebase 应用,其标识符与示例应用的包标识符相同(例如,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 以获取有关将性能集成到开发测试应用中的说明。

Firebase 存储服务

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

推送通知

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

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

iOS 模拟器

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

在 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 License, version 2.0授权的。

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