我在 Codemagic(适用于 ios)上设置 Flutter 项目时遇到问题,无法从
pubspec.yaml
version
字段获取版本(使用内部版本号设置 - 0.7.0+10
。我尝试用 CFBundleShortVersionString
替换
CFBundleVersion
和
$(FLUTTER_BUILD_NAME)
)和
$(FLUTTER_BUILD_NUMBER)
但在 codemagic 上我收到错误:
{
"message": "Exception caught.",
"userInfo": {
"NSLocalizedDescription": "Exception caught.",
"NSLocalizedFailureReason": "*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil"
},
"code": -1010
}
我可以在日志中看到版本和版本代码为空:
Supported platforms: iPhoneOS
Version code: ""
Version: ""
我尝试根据其他 stackoverflow 答案将变量放在引号中:
<key>CFBundleShortVersionString</key>
<string>"$(FLUTTER_BUILD_NAME)"</string>
<key>CFBundleVersion</key>
<string>"$(FLUTTER_BUILD_NUMBER)"</string>
我尝试没有它们,尝试过大括号,似乎没有任何效果。在 Flutter 或 Codemagic 中是否有其他设置可以覆盖此设置?我没主意了。
对我来说,我的 info.plist 值与你的相同:
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
在 pubspec.yaml 中手动设置版本号和代码可以轻松完成。
您是否正在运行
flutter build ios ....
作为构建脚本或其他脚本?如果您使用 xcode 命令进行构建,而没有在 xcode 脚本之前运行 flutter build ios
,那么这可能是问题所在,因为 flutter 在使用其命令时会填充 xcode 文件中的信息。