如何修改Fastlane代码实现仅递增moveeasy产品变种的版本信息?
针对moveeasy变种单独递增版本号的Fastlane解决方案
核心逻辑
跳过对defaultConfig版本信息的修改,直接定位到productFlavors下的moveeasy节点,单独更新它的versionCode和versionName。
具体实现方式
方式一:使用Fastlane内置Action(推荐)
Fastlane的increment_version_code和increment_version_name支持指定flavor参数,直接指向目标变种:
- 递增versionCode:
increment_version_code( build_gradle_path: "app/build.gradle", flavor: "moveeasy" )
- 递增versionName:
increment_version_name( build_gradle_path: "app/build.gradle", flavor: "moveeasy" )
方式二:手动解析修改build.gradle文件(自定义场景)
如果需要更灵活的版本规则(比如自定义versionName的递增逻辑),可以直接读写build.gradle文件:
build_gradle_path = "app/build.gradle" gradle_content = File.read(build_gradle_path) # 递增moveeasy的versionCode gradle_content.gsub!(/productFlavors\s*\{\s*moveeasy\s*\{\s*versionCode\s*(\d+)/) do "productFlavors { moveeasy { versionCode #{$1.to_i + 1}" end # 递增moveeasy的versionName(以x.y.z格式为例,末尾版本号+1) gradle_content.gsub!(/productFlavors\s*\{\s*moveeasy\s*\{\s*versionName\s*"([\d\.]+)"/) do version_parts = $1.split(".").map(&:to_i) version_parts[-1] += 1 "productFlavors { moveeasy { versionName \"#{version_parts.join(".")}\"" end File.write(build_gradle_path, gradle_content)
验证步骤
执行Fastlane任务后,打开app/build.gradle文件,确认:
defaultConfig下的versionCode和versionName保持不变productFlavors中moveeasy变种的版本信息已成功递增
内容的提问来源于stack exchange,提问作者maulik panchal
相关产品推荐
相关产品推荐

