GoogleDataTransport 10.1.0

GoogleDataTransport 10.1.0

Google维护。



 
依赖关系
nanopb~> 3.30910.0
PromisesObjC~> 2.4
 

  • Google, Inc.

Version License Platform

Actions Status

GoogleDataTransport

这个库仅供Google内部使用。它允许从Google SDK记录数据和遥测信息。

集成测试

这些说明适用于小版本和修复版本更新。主要版本需要定制适配。

CI(持续集成)变为绿色后

  • 通过检查标记的版本来确定下一个发布版本。确保下一个发布版本保持Swift PM和CocoaPods版本同步。
  • 请确认发布版本是CHANGELOG.md中的最新条目,如果需要则更新它。
  • 更新podspec中的版本以匹配CHANGELOG.md中的最新条目
  • 检出main分支,并确保它是最新的。
    git checkout main
    git pull
  • 添加CocoaPods标签({version}将是在podspec中的最新版本)
    git tag CocoaPods-{version}
    git push origin CocoaPods-{version}
  • 将podspec推送到指定仓库
    • 如果此版本的GDT打算在下一个Firebase发布之前或与其同时发布

      推送到SpecsStaging
      pod repo push --skip-tests staging GoogleDataTransport.podspec

      如果命令失败并显示 Unable to find the 'staging' repo.,则使用以下命令添加staging仓库

      pod repo add staging [email protected]:firebase/SpecsStaging.git
    • 否则

      推送到SpecsDev
      pod repo push --skip-tests dev GoogleDataTransport.podspec

      如果命令失败并显示 Unable to find the 'dev' repo.,则使用以下命令添加dev仓库

      pod repo add dev [email protected]:firebase/SpecsDev.git
  • 运行Firebase CI,等待下一个夜间构建或添加一个触摸Gemfile的PR。
  • 在google3上创建工作区和新CL。然后copybara运行全局TAP。
    /google/data/ro/teams/copybara/copybara third_party/firebase/ios/Releases/GoogleDataTransport/copy.bara.sky \
    --piper-description-behavior=OVERWRITE \
    --destination-cl=YOUR_CL gdt
    

发布

发布流程如下

  1. 为 Swift PM 打标签并发布
  2. 发布到 CocoaPods
  3. 创建 GitHub 发布
  4. 执行发布后清理

Swift 包管理器

通过为 Swift PM 创建和 推送一个标签,新标签版将立即发布供公共使用。因此,请确认 Swift PM 的发布时间。

  • 为 Swift PM 添加版本标签
git tag {version}
git push origin {version}

注意:确保任何依赖于新 GoogleDataTransport 版本的在进行的 PR 已更新,以便指向新标签版而不是校验和。

CocoaPods

  • 发布新的版本 pod 到 CocoaPods

    建议指向存储在 staging 中的 GoogleDataTransport.podspec,以确保发布正确的规范。

    pod trunk push ~/.cocoapods/repos/staging/GoogleDataTransport/{version}/GoogleDataTransport.podspec --skip-tests

    如果上述命令日志显示:🚀 GoogleDataTransport ({version}) 成功发布,则 pod 推送成功。此外,应该在新版本发布的新提交(与 CocoaPodsAtGoogle 共同编写)出现在 CocoaPods 规范存储库 中。最后,最新版本应在 GoogleDataTransport 的 CocoaPods 页面 上显示。

创建 GitHub 发布版

更新发布模板中的标签版本发布标题字段为最新版。此外,在发布描述中参考发布说明

参考此发布版作为示例。

不要忘记进行发布后清理

发布后清理

清理SpecsStaging
pwd=$(pwd)
mkdir -p /tmp/release-cleanup && cd $_
git clone [email protected]:firebase/SpecsStaging.git
cd SpecsStaging/
git rm -rf GoogleDataTransport/
git commit -m "Post publish cleanup"
git push origin master
rm -rf /tmp/release-cleanup
cd $pwd

设置日志级别

Swift

  • 导入GoogleDataTransport模块
    import GoogleDataTransport
  • 在调用FirebaseApp.configure()前,将全局日志级别变量设置为所需值
    GDTCORConsoleLoggerLoggingLevel = GDTCORLoggingLevel.debug.rawValue

Objective-C

  • 导入 GoogleDataTransport
    #import <GoogleDataTransport/GoogleDataTransport.h>
  • 在调用 -[FIRApp configure] 之前,将全局日志级别变量设置为所需的值
    GDTCORConsoleLoggerLoggingLevel = GDTCORLoggingLevelDebug;

先决条件

  • gem install --user cocoapods cocoapods-generate
  • brew install protobuf nanopb-generator
  • easy_install --user protobuf

要开发

  • 安装先决条件后运行 ./GoogleDataTransport/generate_project.sh

在添加新的日志端点时

  • 使用类似以下命令
    • python -c "line='https://www.firebase.com'; print line[0::2]"
    • python -c "line='https://www.firebase.com'; print line[1::2]"

在GitHub上添加不便于轻易使用的内部代码时

  • 考虑使用 go/copybara-library/scrubbing#cc_scrub

开发

确保您至少有以下软件

为要开发的Pod

pod gen GoogleDataTransport.podspec --local-sources=./ --auto-open --platforms=ios

注意:如果CocoaPods缓存已过时,您需要在执行命令之前运行

注意:将

--platforms

选项设置为

macos

tvos

以开发/测试这些平台。从10.2开始,Xcode无法正确处理多平台CocoaPods工作区。

为Catalyst开发

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

或 alternatively 剩余 each target 中禁用签名

  • 转到构建设置选项卡
  • 点击+
  • 选择添加用户定义设置
  • 添加拥有值NO的设置CODE_SIGNING_REQUIRED

代码格式化

为确保代码格式统一,请在创建 Pull Request 之前运行脚本 ./scripts/check.sh

GitHub Actions 将验证任何代码更改是否以符合标准的方式进行。安装 clang-formatmint

brew install clang-format@16
brew install mint

运行单元测试

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

贡献力量

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

授权协议

本存储库的内容受 Apache 许可协议,版本 2.0 授权。