在 Codemagic 中设置 Flutter 应用程序的版本和构建

问题描述 投票:0回答:1

我在 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 中是否有其他设置可以覆盖此设置?我没主意了。

ios flutter versioning codemagic
1个回答
0
投票

对我来说,我的 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 文件中的信息。

© www.soinside.com 2019 - 2024. All rights reserved.