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

CircleCI环境下如何命令行设置Xcode项目为Apple Generic版本控制?

问题

我有一个使用CircleCI和Fastlane的Cordova移动项目,希望通过Fastlane的以下代码实现构建号自动递增:

increment_build_number(
  build_number: app_store_build_number(
    initial_build_number: 1,
    version: get_version_number(xcodeproj: "...myproject.xcodeproj"),
    live: false
  ) + 1,
)

但在CircleCI中运行任务时,该步骤报错:"Apple Generic Versioning is not enabled in this project."

CircleCI会执行创建全新iOS平台的步骤以保证环境干净,这可能导致设置恢复默认。我曾尝试跳过该步骤并手动设置versioning_system变量,但仍出现相同错误。由于无法在CircleCI任务中访问Xcode,请问是否可通过命令行将版本系统设置为Apple Generic?

解决方案

可以通过命令行直接修改Xcode项目配置,无需打开Xcode界面,以下是针对Cordova项目的具体实现步骤:

1. 使用xcodebuild命令配置版本系统

在CircleCI的任务流程中,执行完cordova platform add ios后,立即进入iOS项目目录(通常是platforms/ios/),运行以下命令为Debug和Release配置都开启Apple Generic版本控制:

# 替换成你的项目名称,Cordova生成的项目名通常和你的App名称一致
PROJECT_NAME="YourAppName"

xcodebuild -project "$PROJECT_NAME.xcodeproj" -target "$PROJECT_NAME" -configuration Debug SETTINGS_VERSIONING_SYSTEM=apple-generic
xcodebuild -project "$PROJECT_NAME.xcodeproj" -target "$PROJECT_NAME" -configuration Release SETTINGS_VERSIONING_SYSTEM=apple-generic

该命令会直接修改Xcode项目的构建设置,确保版本系统设置为Apple Generic,覆盖Cordova生成平台时的默认配置。

2. 整合到CircleCI流程的建议

调整你的CircleCI任务步骤顺序:

  • 先执行cordova platform add ios重新生成干净的iOS平台
  • 立即运行上述xcodebuild命令配置版本系统
  • 最后执行Fastlane的构建号递增脚本

这样就能避免Cordova重新生成平台后覆盖设置的问题,确保Fastlane运行时版本系统配置已经生效。

内容的提问来源于stack exchange,提问作者C. Short

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:13:12