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

如何用Fastlane递增Build Number且不修改项目文件?

问题

我正在用Fastlane配置iOS应用的构建流程,想实现基于TestFlight的最新构建版本递增Build Number并上传构建包,但不修改项目文件,不想让Build Number的变更污染Git提交历史。目前我们的应用通过Xcode Cloud构建,项目文件里的CURRENT_PROJECT_VERSION一直保持为1。

解决方案

你的思路完全可行,核心逻辑是临时修改Build Number用于构建,完成后恢复原值,这样不会留下项目文件的永久变更,也就不会污染Git历史。具体实现代码如下:

# 获取当前应用的版本号
current_version = get_version_number()

# 拉取TestFlight上对应版本的最新Build Number
previous_build_number = latest_testflight_build_number(
  api_key: api_key,
  app_identifier: app_identifier,
  version: current_version
)

# 计算本次构建要使用的Build Number
current_build_number = previous_build_number + 1

# 临时修改项目的Build Number为目标值
increment_build_number(
  build_number: current_build_number
)

# 执行iOS应用构建(根据实际需求补充scheme、workspace等参数)
build_ios_app(
  scheme: "YourAppScheme",
  workspace: "YourApp.xcworkspace"
  # 其他构建参数,比如export_method等
)

# 构建完成后,将Build Number恢复为初始值1
increment_build_number(
  build_number: 1
)

关键说明

  • 整个流程中,increment_build_number仅在本地临时修改项目文件,只要不主动提交这些变更,就不会影响Git仓库的历史记录。
  • 如果是在Xcode Cloud这类CI环境中运行,构建任务结束后环境会被销毁,本地的临时修改会自动消失,完全不会改动仓库里的原始项目文件。
  • 确保latest_testflight_build_number能正常获取数据,需要提前配置好Apple API密钥,且密钥拥有访问TestFlight构建信息的权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 20:04:54