android - 带有 Github Actions 和 Fastlane 的 Android CI/CD
问题描述
我正在使用 fastlane 自动部署到 Play 商店。这里以 alpha 车道为例。
lane :alpha do
gradle(task: 'clean')
gradle(
task: 'assemble',
build_type: 'Release',
properties: {
"android.injected.signing.store.file" => ENV["ANDROID_KEYSTORE"],
"android.injected.signing.store.password" => ENV["ANDROID_KEYSTORE_PASSWORD"],
"android.injected.signing.key.alias" => ENV["ANDROID_KEY_ALIAS"],
"android.injected.signing.key.password" => ENV["ANDROID_KEY_PASSWORD"],
}
)
upload_to_play_store(track: 'alpha')
end
我想使用 Github 操作自动执行此部署。每当发生提交staging
时,运行fastlane alpha
. 然而,我遇到的问题是版本控制。我需要versionCode
在我的build.gradle
文件中碰撞。在运行之前我一直在手动执行此操作fastlane alpha
。
我想在提交之前消除手动调整此值的需要,我该如何实现?
我见过这个fastlane 插件来增加版本代码。例如,如果我在 versionCode 为 1 时提交一次,那么我的工作流程将自动将 递增versionCode
到 2。当我再次提交时,versionCode
仍然是 1,Github 会将它撞到 2。但是,Play 商店需要versionCode
3. 理想的解决方案是让 Github 从 Google Play 商店查询versionCode
我的应用程序的当前版本并将其提供+ 1
给 fastlane。我已经寻找一种方法来做到这一点,但找不到解决方案。
解决方案
您是否尝试过:https ://docs.fastlane.tools/actions/google_play_track_version_codes/ ?
g = google_play_track_version_codes
gb = google_play_track_version_codes(track: 'beta')
ga = google_play_track_version_codes(track: 'alpha')
max_value = [g[0].to_i, gb[0].to_i, ga[0].to_i].max
version_updated = max_value + 1
increment_version_code(app_project_dir: "./app", version_code: version_updated.to_i)
基本上我正在使用 Google Play 的所有版本代码并增加 +1 的最大值,然后使用版本控制插件在 build.gradle 上更新它
推荐阅读
- python-3.x - 不在索引中,seaborn
- java - 我想使用核心 java 根据文本输入动态创建 jpg 图像
- xml - XSLT 按名称查找并获取文件
- c# - 如果使用 ConfigureAwait(false),异步/等待仍然会死锁吗?
- php - 来自 csv 查询的 Laravel 雄辩的 postgress 副本
- flutter - 如何在 Flutter 上创建复制到剪贴板事件?
- veracode - Veracode CWE id 611
- java - 在 spring 中防止 2 个不同线程的读锁定
- matrix - fortran Do 循环索引问题以优化代码
- c# - 为什么我的 json 数据在处理时会发生变化?