当我运行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
4条答案
按热度按时间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)";
mwngjboj2#
Xcode中的信息不会因为您更新并保存 pubspc.yaml 而更新。您必须为iOS重新构建才能使更改反映在Xcode中。
watbbzwu3#
这是因为Flutter构建/运行CLI覆盖了
pubspec.yaml
的iOS/Android构建版本。在我的情况下,我使用手动构建(快速通道的健身房命令),构建版本与以前相同。
使用
flutter build
进行构建,否则必须手动覆盖版本。m1m5dgzv4#
我多次遇到类似的问题。我所做的是为所有配置文件[PROFILE](调试,发布,配置文件)设置生成的配置。
转到XCode -〉运行程序-〉项目(运行程序)-〉信息。
在目标级别上,所有运行者都使用Pods-Runner.[PROFILE]。在项目级别上,没有使用任何配置,所以我选择了为所有生成。
我不知道这一更改的实际含义是什么,但现在构建版本和名称是从生成的.xcconfig文件中获取的。