FirebaseRemoteConfigInterop 11.0.0

FirebaseRemoteConfigInterop 11.0.0

Google 维护。




Firebase 苹果开源开发

此仓库包含除 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 Package Manager 支持的说明可以在 SwiftPackageManager.md Markdown 文件中找到。

从 GitHub 安装

以下说明可用于访问位于其他分支、标签或提交处的 Firebase 仓库。

背景

请参阅Podfile 语法参考以获取有关覆盖 pod 源位置的说明和选项。

访问 Firebase 源快照

所有官方发布版本都标记在这个仓库中,并通过 CocoaPods 提供访问。要访问本地源快照或未发布分支,请使用以下 Podfile 指令

要访问通过分支访问 Firestore

pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main'
pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'main'

要访问通过已签出的 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 Markdown 文件。

Catalyst 开发

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

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

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

Swift 包管理器

  • 要启用测试方案:运行脚本 ./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@18
brew install mint

运行单元测试

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

运行样本应用

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

  1. 转到Firebase控制台
  2. 如果没有Firebase项目,请创建一个新的Firebase项目
  3. 对于您想测试的每个样本应用,使用样本应用的bundle标识符创建一个新的Firebase应用(例如,com.google.Database-Example
  4. 下载生成的GoogleService-Info.plist并将其添加到Xcode项目。

生成覆盖率报告

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

特定组件说明

请参阅下文中的任何特定组件的说明。

Firebase身份验证

有关Firebase身份验证开发的详细信息,请参阅Auth Sample README中的说明,有关构建和运行FirebaseAuth pod以及各种样本和测试。

Firebase数据库

可以将Firebase数据库集成测试运行在本地运行的数据库模拟器或生产实例上。

在运行集成测试之前,请调用`./scripts/run_database_emulator.sh start`以运行本地模拟器实例。

要运行生产实例,请提供一个有效的`GoogleServices-Info.plist`并将其复制到`FirebaseDatabase/Tests/Resources/GoogleService-Info.plist`。测试运行期间,您的Security Rule必须设置为公开

Firebase动态链接

Firebase动态链接已被弃用,不应在新项目中使用。该服务将于2025年8月25日关闭。

有关更多指导,请参阅我们的Dynamic Links弃用FAQ文档

Firebase性能监控

有关Firebase性能监控开发的详细信息,请参阅Performance README中的说明,如何构建SDK,以及Performance TestApp README中的说明,如何将性能集成到dev测试应用中。

Firebase存储

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

推送通知

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

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

iOS模拟器

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

在Apple平台上使用Firebase构建

Firebase为macOS、Catalyst和tvOS提供官方Beta支持。visionOS和watchOS由社区支持。感谢社区贡献了许多跨平台PR。

目前,Firebase的大多数产品在Apple平台上都可用。仍然存在一些差距,特别是在visionOS和watchOS上。有关当前支持矩阵的详细信息,请参阅Firebase文档中的此图表

visionOS

在受支持的地方,visionOS与预期一致地工作,除了通过Swift Package Manager使用的Firestore需要使用源分布的情况。

要启用Firestore源分布,退出Xcode,并从命令行使用环境变量FIREBASE_SOURCE_FIRESTORE打开所需项目:open --env FIREBASE_SOURCE_FIRESTORE /path/to/project.xcodeproj。要返回使用Firestore的二进制分布,退出Xcode,像平常一样打开Xcode,不要使用环境变量。

watchOS

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

请注意, Firebase不正式支持watchOS。虽然我们可以通过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服务条款的约束。