FirebaseDynamicLinks 11.0.0

FirebaseDynamicLinks 11.0.0

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

Google维护。




Firebase Apple 开源开发

此存储库包含除 FirebaseAnalytics 以外所有 Apple 平台 Firebase SDK 的源代码。

Firebase 是一个应用开发平台,提供工具帮助您构建、扩展和盈利您的应用。有关 Firebase 的更多信息,请访问官方 Firebase 网站

安装

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

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

标准 pod install

前往 https://firebase.google.com/docs/ios/setup

Swift 包管理器

关于 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'

要通过从已检查出的 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 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主机应用和单元测试目标添加签名
  • 选择Unit-unit方案
  • 运行它以构建和测试

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

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

Swift包管理器

  • 为启用测试方案:运行 ./scripts/setup_spm_tests.sh
  • 在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 应用,使用示例应用的 bundle 标识符(例如 com.google.Database-Example
  4. 下载生成的 GoogleService-Info.plist 并将其添加到 Xcode 项目中。

生成覆盖率报告

参阅 scripts/code_coverage_report/README Markdown 文件。

特定组件说明

有关这些组件的特定说明,请参阅下面章节。

Firebase身份验证

如果您正在进行特定的Firebase身份验证开发,请参阅身份验证示例README文件,该文件提供了有关构建和运行FirebaseAuth库以及各种示例和测试的说明。

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 文件中的说明。

推送通知

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

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

iOS 模拟器

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

在苹果平台上使用 Firebase 构建

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

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

watchOS

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

请注意,Firebase并未官方支持watchOS。虽然我们可以通过GitHub Actions捕获基本单元测试问题,但SDK在watchOS上可能无法按预期工作的一些修改可能产生影响。如果您遇到这种情况,请提一个问题

在控制台中设置应用程序时,您可能会遇到一步提到类似于“检查应用程序是否已与我们的服务器通信”的内容。这依赖于分析,在watchOS上无法工作。可以安全地忽略此消息并继续,其他SDK将按预期工作。

附加Crashlytics说明

  • watchOS支持有限。由于watchOS限制,不会记录mach异常和信号崩溃(SwiftUI中的崩溃以mach异常的形式生成,因此不会记录)。

Combine

多亏了社区的贡献,FirebaseCombineSwift包含对苹果Combine框架的支持。此模块目前正在开发中,尚不支持在生产环境中使用。更多详情请参考文档

路线图

查阅路线图获取关于Firebase Apple SDK开源计划和方向更多详情。

参与贡献

查阅参与贡献获取更多关于如何参与Firebase Apple SDK贡献的信息。

许可协议

本存储库的内容遵守Apache许可证,版本2.0

您对Firebase的使用受Firebase服务条款管理。