FirebaseAnalyticsInterop 1.5.0

FirebaseAnalyticsInterop 1.5.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仓库。

背景

有关覆盖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'

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 {name here}.podspec --local-sources=./ --auto-open --platforms=ios
  • 在 App-iOS 构建设置中勾选 Mac
  • 在设置中签名的签名字段签名字段签名 App
  • 在项目管理器中点击 Pods
  • 将签名添加到 iOS 主应用和单元测试目标中
  • 选择 Unit-unit 方案
  • 运行以构建和测试

添加新的 Firebase Pod

请参阅 AddNewPod.md

代码格式化

为了确保代码格式的一致性,在创建 Pull Request 之前运行脚本 ./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 构建组件并运行其单元测试。

查看代码覆盖率

首先,确保已安装 xcov,可以使用 gem install xcov 安装。

在 Xcode 中运行 AllUnitTests_iOS 方案后,在终端中 Example/ 目录下执行 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. 对于您想要测试的每个示例应用,使用该示例应用的 bundle identifier(例如:com.google.Database-Example)创建一个新的 Firebase 应用
  4. 下载生成的 GoogleService-Info.plist 并替换相应的空白 plist 文件(例如,在 Example/Database/App/ 中);

某些示例应用(如 Firebase 消息 Example/Messaging/App)需要特殊的 Apple 功能,您需要将示例应用更改为使用您在自己的 Apple 开发者账号中可以控制的唯一 bundle identifier。

特定组件说明

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

Firebase 身份认证

如果您正在进行特定的 Firebase Auth 开发,请参阅 Auth 示例 README 了解有关构建和运行 FirebaseAuth pod 以及各种示例和测试的说明。

Firebase 数据库

要运行数据库集成测试,请将您的数据库身份验证规则设为公开

Firebase 存储空间

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

推送通知

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

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

iOS 模拟器

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

社区支持的努力

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

tvOS, macOS, and Catalyst

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

对于tvOS,请查看示例

请注意,macOS、Catalyst和tvOS不是Firebase的官方支持,该仓库主要针对iOS进行积极开发。虽然我们可以通过Travis捕获基本的单元测试问题,但可能会有一些变更导致SDK在macOS或tvOS上不再按预期工作。如果您遇到这种情况,请提交问题

要安装,请在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 License,版本2.0的约束。

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