GoogleUtilities
GoogleUtilities 为 Firebase 和其他 Google SDKs 提供了一组适用于苹果平台开发的工具。
这些工具不直接支持非 Google 库使用。
集成测试
以下说明适用于次要和补丁版本更新。主要版本需要定制适配。
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 推送到指定仓库
-
如果此版本的 GoogleUtilities 意图是 在 或 与 下一个 Firebase 发布前推出
推送到 SpecsStaging
pod repo push --skip-tests staging GoogleUtilities.podspec
如果命令因
Unable to find the 'staging' repo.
失败,则使用以下命令添加 staging 仓库pod repo add staging [email protected]:firebase/SpecsStaging.git
-
否则
推送到 SpecsDev
pod repo push --skip-tests dev GoogleUtilities.podspec
如果命令因
Unable to find the 'dev' repo.
失败,则使用以下命令添加 dev 仓库pod repo add dev [email protected]:firebase/SpecsDev.git
-
- 通过等待下一个夜间或添加一个修改
的 PR 来运行 Firebase CI。
- 在 google3 上,使用以下命令运行 copybara。然后,开始对生成的 CL 执行全局 TAP。根据需要解耦。
third_party/firebase/ios/Releases/run_copy_bara.py --directory GoogleUtilities --branch main
发布
发布流程如下
Swift 包管理器
通过为 Swift PM 创建和推送一个标签,新标签版本将立即公开发布。因此,请验证 Swift PM 的发布时间。
- 为 Swift PM 添加版本标签
git tag {version}
git push origin {version}
注意:确保任何依赖新 GoogleUtilities
版本的进行中的 PR 已经更新为指向新标签版本,而不是校验和。
CocoaPods
-
发布新版本的 pod 到 CocoaPods
建议指向
staging
中的GoogleUtilities.podspec
,以确保发布正确的说明。pod trunk push ~/.cocoapods/repos/staging/GoogleUtilities/{version}/GoogleUtilities.podspec
注意:在某些情况下,使用带有
--skip-tests
标志的pod trunk push
是可以接受的。执行此操作之前,请与维护者进行双重检查。如果上述命令日志显示:“🚀 GoogleUtilities ({version}) 已成功发布”,则 pod 发布成功。此外,应出现一个发布新版本的新提交(由 CocoaPodsAtGoogle 协同完成),并在 CocoaPods 说明仓库 中显示最新版本。最后,最新版本应显示在 GoogleUtilities 的 CocoaPods 页面 上。
创建 GitHub 发布
更新发布模板的标签版本和发布标题字段,并请在发布描述中引用发布说明。
查看这个发布作为示例。
别忘了执行发布后清理哦!
发布后清理
清理 SpecsStaging
pwd=$(pwd)
mkdir -p /tmp/release-cleanup && cd $_
git clone [email protected]:firebase/SpecsStaging.git
cd SpecsStaging/
git rm -rf GoogleUtilities/
git commit -m "Post publish cleanup"
git push origin master
rm -rf /tmp/release-cleanup
cd $pwd
开发
要在该仓库中开发,请确保您至少有以下软件
- Xcode 12.0(或更高版本)
- CocoaPods 1.10.0(或更高版本)
- CocoaPods 生成
为您想开发的 pod
pod gen GoogleUtilities.podspec --local-sources=./ --auto-open --platforms=ios
注意:如果 CocoaPods 缓存过时,您可能需要运行 pod repo update
命令,然后再执行 pod gen
命令。
注意:将 --platforms
选项设置为 macos
或 tvos
以开发/测试这些平台。由于 10.2 版本,Xcode 无法正确处理多平台 CocoaPods 工作区。
Catalyst 开发
pod gen GoogleUtilities.podspec --local-sources=./ --auto-open --platforms=ios
- 在 App-iOS 构建设置中勾选 Mac 复选框
- 在设置中的签名 & 能力选项卡中签名应用程序
- 在项目管理器中点击Pods
- 将签名添加到iOS主应用程序和单元测试目标
- 选择Unit-unit方案
- 运行它以构建和测试
或者在每个目标中禁用签名
- 转到构建设置选项卡
- 点击
+
- 选择
添加用户定义设置
- 添加具有
NO
值的CODE_SIGNING_REQUIRED
设置
代码格式化
为了确保代码格式的一致性,在创建PR之前运行脚本./scripts/check.sh。
GitHub Actions将验证任何代码更改是否以符合风格的方式进行。安装clang-format
和mint
brew install clang-format@16
brew install mint
运行单元测试
选择一个方案,然后按Command-u构建组件并运行其单元测试。
贡献
参见贡献。
许可证
本存储库的内容采用Apache许可证,版本2.0授权。