You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS CI/CD环境下如何用fastlane和Jenkins正确递增Build Number?

解决Fastlane中Version号(Bundle version string,short)不自动递增的问题

嘿,我刚好碰到过一模一样的情况!Fastlane的increment_build_number命令默认只负责递增Bundle version(也就是Xcode里的「Build」字段,对应CFBundleVersion),而Bundle version string,short(「Version」字段,对应CFBundleShortVersionString)是不会被这个命令修改的——这是它的默认设计逻辑。

如果想让Version号(比如从1.0.0递增到1.0.1)跟着部署自动更新,你可以试试这两种方法:

方法1:用Fastlane内置的increment_version_number命令

这个命令专门用来处理Version号的递增,支持按major(主版本,比如1.0.0→2.0.0)、minor(次版本,1.0.0→1.1.0)、patch(补丁版本,1.0.0→1.0.1)三种类型递增,也可以直接指定具体版本号。

把它加到你的Fastfile lane里就行,示例代码:

lane :deploy_to_crashlytics do
  # 递增补丁版本号(1.0.0 → 1.0.1)
  increment_version_number(
    bump_type: "patch",
    target: "YourAppTarget" # 如果有多个target,记得指定目标
  )
  
  # 同时递增Build号
  increment_build_number(
    target: "YourAppTarget"
  )
  
  # 后续的Crashlytics上传步骤
  upload_to_crashlytics(
    # 你的Crashlytics配置参数
  )

  # 可选:自动提交版本号变更到Git
  commit_version_bump(
    message: "Bump version to #{get_version_number} and build to #{get_build_number}"
  )
end

方法2:自定义Version号递增逻辑

如果你的版本号规则比较特殊(比如想让Build号和Version的Patch号同步),可以用Ruby代码手动处理:

lane :deploy_to_crashlytics do
  # 获取当前Version号
  current_version = get_version_number(target: "YourAppTarget")
  # 拆分版本号为数字数组
  version_parts = current_version.split(".").map(&:to_i)
  
  # 自定义递增逻辑:比如只递增Patch位
  version_parts[2] += 1
  new_version = version_parts.join(".")
  
  # 设置新的Version号
  increment_version_number(
    version: new_version,
    target: "YourAppTarget"
  )
  
  # 递增Build号
  increment_build_number(target: "YourAppTarget")
  
  # 上传到Crashlytics
  upload_to_crashlytics()
  
  # 提交变更
  commit_version_bump(message: "Update version to #{new_version}")
end

注意事项

  • 确保你的Xcode项目里,Version和Build号没有硬编码死,而是使用Xcode默认的变量(或者Fastlane能正确读取的字段);
  • 如果有多个Target,一定要在命令里指定target参数,不然Fastlane可能会修改错目标;
  • 如果用Git管理代码,记得用commit_version_bump提交版本号变更,不然下次构建又会回到旧的数值。

内容的提问来源于stack exchange,提问作者Vidhya Sri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:38:01