FirebaseCoreDiagnosticsInterop 1.2.0

FirebaseCoreDiagnosticsInterop 1.2.0

Google维护。



Firebase iOS开源开发 构建状态

这个仓库包含了Firebase iOS SDK源代码的一部分。它目前包括FirebaseCore、FirebaseABTesting、FirebaseAuth、FirebaseDatabase、FirebaseFirestore、FirebaseFunctions、FirebaseInstanceID、FirebaseInAppMessaging、FirebaseInAppMessagingDisplay、FirebaseMessaging、FirebaseRemoteConfig和FirebaseStorage。

这个仓库还包括GoogleUtilities源代码。GoogleUtilities pod是一组由Firebase和其他Google产品使用的工具。

Firebase是一个应用程序开发平台,它提供了帮助您构建、成长和盈利应用程序的工具。有关Firebase的更多信息,请参阅https://firebase.google.com

安装

请参阅下面的三个子部分,了解三种不同安装方法的详细信息。

  1. 标准pod安装
  2. 从GitHub仓库安装
  3. 实验性Carthage

标准pod安装

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

从GitHub安装

从5.0.0版本开始,每个版本的源代码也被部署到CocoaPods主目录,并且可以通过标准的CocoaPods Podfile语法访问。

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

背景

查看Podfile语法参考,了解关于覆盖pod源位置的指令和选项。

访问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

Rome

关于通过Rome安装二进制框架的说明见Rome

开发

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

您想要开发的 pod

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

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

注意:将 --platforms 选项设置为 macostvos 以在那些平台上进行开发/测试。从 10.2 版本开始,Xcode 无法正确处理多平台 CocoaPods 工作空间。

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

Catalyst 开发

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

添加新的 Firebase Pod

请参阅 AddNewPod.md

代码格式化

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

Travis 将验证任何代码更改是否以符合规则的方式进行。安装 clang-formatswiftformat。这些命令将获取正确版本

brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/e3496d9/Formula/clang-format.rb
brew upgrade https://raw.githubusercontent.com/Homebrew/homebrew-core/7963c3d/Formula/swiftformat.rb

注意:如果您已经安装了这些程序的更高版本,您可能需要使用 brew switch 切换到这个版本。

要更新本节,请找到与 CI 失败日志中版本对应的 clang-format 和 swiftformat.rb 版本 此处

运行单元测试

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

查看代码覆盖率

首先,确保已通过gem install xcov安装了xcov

在Xcode中运行AllUnitTests_iOS方案后,在终端中执行xcov --workspace Firebase.xcworkspace --scheme AllUnitTests_iOS --output_directory xcov_output。这会将覆盖率聚合起来,然后可以通过运行open xcov_output/index.html查看结果。

运行示例应用

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

  1. 前往Firebase控制台
  2. 如果没有,创建一个新的Firebase项目
  3. 对于您要测试的每个示例应用程序,创建一个新的 Firebase 应用程序,附带示例应用程序的程序包标识符(例如 com.google.Database-Example
  4. 下载结果GoogleService-Info.plist并替换适当的占位符 plist 文件(例如在Example/Database/App/中);

某些示例应用如 Firebase 消息(Example/Messaging/App)需要特殊的 Apple 功能,您将不得不更改示例应用程序以使用您自己的 Apple 开发者帐户中可以控制的唯一程序包标识符。

特定组件说明

有关这些组件的任何特殊说明,请参阅下面的部分。

Firebase身份验证

如果你在进行特定的Firebase身份验证开发,请参阅身份验证示例README,了解关于构建和运行FirebaseAuth pod以及相关样本和测试的说明。

Firebase数据库

要运行数据库集成测试,使你的数据库身份验证规则公开

Firebase存储

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

推送通知

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

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

iOS仿真器

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

社区支持的努力

我们看到了许多改善Firebase SDK的兴趣和贡献,我们非常感激!我们希望让尽可能多的开发者能够使用Firebase并参与Firebase社区。

tvOS、macOS和Catalyst

得益于社区的贡献,FirebaseABTesting、FirebaseAuth、FirebaseCore、FirebaseDatabase、FirebaseMessaging、FirebaseFirestore、FirebaseFunctions、FirebaseRemoteConfig和FirebaseStorage现在在tvOS、macOS和Catalyst上编译、运行单元测试并进行工作。

有关tvOS,请参阅示例

请注意,macOS、Catalyst和tvOS不是Firebase的官方支持平台,这个存储库主要是为iOS开发的。虽然我们可以通过Travis捕捉基本的单元测试问题,但在macOS或tvOS上,SDK可能不再按预期工作。如果您遇到这种情况,请提交问题

要安装,请将以下子集添加到Podfile中

pod 'Firebase/ABTesting'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Firestore'
pod 'Firebase/Functions'
pod 'Firebase/Messaging'
pod 'Firebase/RemoteConfig'
pod 'Firebase/Storage'

额外的Catalyst注意事项

  • FirebaseAuth和FirebaseMessaging需要将密钥链共享能力添加到构建设置中。
  • FirebaseFirestore需要签名gRPC资源目标

路线图

有关Firebase iOS SDK开源计划和方向的更多信息,请参阅路线图

贡献

有关向Firebase iOS SDK贡献的更多信息,请参阅贡献

许可

本存储库内容采用Apache许可证,版本2.0授权。

您对Firebase的使用受Firebase服务的条款与服务约束。