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
发布
发布流程如下
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
开发
确保您至少有以下软件
- Xcode 12.0(或更高版本)
- CocoaPods 1.10.0(或更高版本)
- 使用CocoaPods生成
为要开发的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-format
和 mint
brew install clang-format@16
brew install mint
运行单元测试
选择一个方案并按 Command-u 键构建组件和运行其单元测试。
贡献力量
有关为 Firebase iOS SDK 贡献信息的更多信息,请参阅 贡献力量。
授权协议
本存储库的内容受 Apache 许可协议,版本 2.0 授权。