FirebaseInAppMessagingDisplay 0.17.0

FirebaseInAppMessagingDisplay 0.17.0

Google 维护。



Firebase iOS 开源开发 Build Status

此仓库包含 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 master,可以通过标准的CocoaPods Podfile语法访问。

以下说明可以用来访问其他分支、标签或提交处的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'

要通过已检出版本访问FirebaseMessaging,请执行以下操作:从Rome安装二进制框架的说明在Rome

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{name here}.podspec --local-sources=./ --auto-open --platforms=ios

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

注意:将 --platforms 选项设置为 macostvos 来为这些平台开发/测试。从 Xcode 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

代码格式化

为确保代码格式一致,请在创建 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 方案后,在终端中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. 对于您想要测试的每个示例应用,为该示例应用创建一个新的Firebase应用,并使用示例应用的bundle identifier(例如 com.google.Database-Example
  4. 下载生成的 GoogleService-Info.plist,并将其替换为相应的伪plist文件(例如在 Example/Database/App/);

一些示例应用(如Firebase Messaging(《Example/Messaging/App》))需要特殊的Apple能力,并且您必须更改示例应用以使用一个独特的bundle identifier,您可以控制它在自己苹果开发者账号中。

特定组件说明

请参阅下面各节中任何特定于这些组件的说明。

Firebase身份验证

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

Firebase数据库

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

Firebase存储

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

推送通知

推送通知只能发送到开发人员在开发者门户中特殊设置的App ID。为了测试接收推送通知,您需要

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

iOS模拟器

iOS模拟器无法注册远程通知,也不会接收推送通知。要接收推送通知,您必须按照以上步骤进行,并在真实设备上运行应用。

社区支持的努力

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

tvOS, macOS, 和 Catalyst

由于社区的贡献,许多Firebase SDKs现在已经在tvOS, macOS, 和 Catalyst上编译、运行单元测试并运行。

对于tvOS,请查看示例

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

在控制台中的应用设置过程中,您可能会遇到一个这样的步骤:“检查应用是否已与我们服务器通信”。这依赖于分析,不适用于 macOS/tvOS/Catalyst。请安全忽略该消息并继续,其余的 SDK 将按预期工作。

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

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

其他 Catalyst 注意事项

  • FirebaseAuth 和 FirebaseMessaging 需要在构建设置中添加 Keychain Sharing Capability
  • FirebaseFirestore 需要签署gRPC 资源目标

路线图

参见路线图了解有关Firebase iOS SDK开源计划和方向的更多内容。

贡献

请参阅 贡献 以获取有关贡献 Firebase iOS SDK 的更多信息。

许可证

本存储库的内容受Apache许可证,版本2.0的许可。

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