在Codemagic中配置Flutter iOS应用版本与构建号遇阻
针对你遇到的FLUTTER_BUILD_NAME和FLUTTER_BUILD_NUMBER变量为空、导致Info.plist注入失败的问题,可从以下几个方向排查解决:
确认Codemagic的Flutter SDK版本
老版本Flutter可能存在自动注入版本变量的bug,建议在Codemagic构建配置中选择stable通道的最新稳定版,避免使用过旧的SDK版本。检查pubspec.yaml的格式与位置
确保version字段严格遵循x.y.z+build_number格式(如你的0.7.0+10),无多余空格或特殊字符;同时确认pubspec.yaml位于项目根目录,Codemagic能正常读取到该文件。修正Info.plist的写法
不要给变量加引号,正确配置应为:<key>CFBundleShortVersionString</key> <string>$(FLUTTER_BUILD_NAME)</string> <key>CFBundleVersion</key> <string>$(FLUTTER_BUILD_NUMBER)</string>同时确认Info.plist路径为
ios/Runner/Info.plist,若为自定义路径需在构建脚本中明确指定。排查Codemagic环境变量覆盖
进入Codemagic构建配置的「Environment variables」页面,检查是否手动设置了FLUTTER_BUILD_NAME或FLUTTER_BUILD_NUMBER变量——手动设置的变量会覆盖pubspec.yaml中的值,若存在则删除。调整构建脚本顺序
尝试手动指定构建步骤的顺序,确保Flutter先处理pubspec再构建iOS项目:flutter pub get flutter build ios --no-codesign避免Codemagic默认脚本顺序导致的变量未注入问题。
确认项目根目录配置
若项目存在子目录结构,需在Codemagic构建配置中设置正确的工作目录,确保SDK能扫描到pubspec.yaml文件。
内容的提问来源于stack exchange,提问作者lenartowski

