为何Codemagic配置Flutter iOS版本时CURRENT_PROJECT_VERSION不生效
Codemagic Flutter iOS构建版本号不生效原因解析
核心原因
- Flutter 执行构建命令时传入的
--build-name、--build-number参数,只会直接赋值给 Flutter 框架预设的两个 Xcode 构建变量FLUTTER_BUILD_NAME和FLUTTER_BUILD_NUMBER,不会主动覆盖 Xcode 原生的版本变量。 - 你最初使用的
CURRENT_PROJECT_VERSION和MARKETING_VERSION是 Xcode 原生默认的版本变量,这两个变量的值默认读取自 Xcode 项目「General」配置页下的版本、构建号设置,和 Flutter 构建参数没有默认映射关系。因此你在 Codemagic 中配置的构建参数值不会同步到这两个变量上,Info.plist 读取这两个变量自然无法拿到你设置的目标版本值。 - 当你将 Info.plist 对应取值修改为
FLUTTER_BUILD_NUMBER、FLUTTER_BUILD_NAME后,相当于直接对接了 Flutter 构建参数赋值的目标变量,因此配置可以正常生效。
可选兼容方案
如果你不想修改 Info.plist 的原有配置,也可以在 Xcode 项目的「Build Settings」中添加自定义映射配置:
MARKETING_VERSION = $(FLUTTER_BUILD_NAME) CURRENT_PROJECT_VERSION = $(FLUTTER_BUILD_NUMBER)
配置完成后同样可以实现 Flutter 构建参数自动同步到原生版本变量的效果。
内容的提问来源于stack exchange,提问作者Andrew Piterov
相关产品推荐
相关产品推荐

