Flutter未使用pubspec.yaml中的构建编号

eivgtgni  于 2023-02-25  发布在  Flutter
关注(0)|答案(4)|浏览(223)

当我运行flutter build run时,我希望版本号和内部版本号使用我在pubspec.yaml 1.1.5+10中的版本
然而,10总是恢复为1。这在info.plist中设置正确

<key>CFBundleVersion</key>
  <string>$(FLUTTER_BUILD_NUMBER)</string>
  <key>CFBundleShortVersionString</key>
  <string>$(FLUTTER_BUILD_NAME)</string>

但是当我打开xcode v12.2时,$(FLUTTER_BUILD_NUMBER)又变成了

<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>

xcode本身正在info.plist.

中恢复这些更改

[✓] Flutter (Channel stable, 1.22.2, on Mac OS X 10.15.7 19H2, locale en-US)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
[!] Android Studio (version 4.1)
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
[!] Connected device
    ! No devices available
4urapxun

4urapxun1#

这是ios/Runner. xcodeproj/project. pbxproj文件中的问题
我通过此更新解决了我的版本和内部版本号
更改此内容:
CURRENT_PROJECT_VERSION = your buildnumber
MARKETING_VERSION = your version
致:
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
MARKETING_VERSION = "$(FLUTTER_BUILD_NAME)";

mwngjboj

mwngjboj2#

Xcode中的信息不会因为您更新并保存 pubspc.yaml 而更新。您必须为iOS重新构建才能使更改反映在Xcode中。

watbbzwu

watbbzwu3#

这是因为Flutter构建/运行CLI覆盖了pubspec.yaml的iOS/Android构建版本。
在我的情况下,我使用手动构建(快速通道的健身房命令),构建版本与以前相同。
使用flutter build进行构建,否则必须手动覆盖版本。

m1m5dgzv

m1m5dgzv4#

我多次遇到类似的问题。我所做的是为所有配置文件[PROFILE](调试,发布,配置文件)设置生成的配置。
转到XCode -〉运行程序-〉项目(运行程序)-〉信息。
在目标级别上,所有运行者都使用Pods-Runner.[PROFILE]。在项目级别上,没有使用任何配置,所以我选择了为所有生成。

我不知道这一更改的实际含义是什么,但现在构建版本和名称是从生成的.xcconfig文件中获取的。

相关问题