Flutter应用设置长版本号问题(已上架Google Play)
解决Flutter pubspec.yaml长版本号解析失败问题
错误原因
Dart的pub工具严格遵循**语义化版本控制(SemVer)**规范,要求版本号格式为 主版本号.次版本号.修订号+构建号,最多只能包含3个用点分隔的数字段。你配置的3.0.25.1+133有4个数字段,不符合规范,因此触发解析错误。
解决方案
方案1:调整版本号适配SemVer规范
将版本号修改为符合规范的格式,比如:
- 合并第四个数字到修订号:
3.0.251+133 - 或者忽略第四个数字,保留核心版本段:
3.0.25+133
修改后的pubspec.yaml片段:
version: 3.0.251+133
方案2:单独配置Android版本名(满足Google Play显示需求)
如果必须在Google Play显示3.0.25.1这类长版本名,可以保持pubspec.yaml的版本号符合SemVer,同时手动指定Android的versionName:
- 保持pubspec.yaml的版本号为规范格式,比如:
version: 3.0.25+133 - 打开
android/app/build.gradle文件,在defaultConfig块中添加自定义versionName:android { defaultConfig { // 保留原有配置,新增/修改以下行 versionName "3.0.25.1" versionCode flutterVersionCode.toInteger() } }
这样pubspec中的构建号会同步到Google Play的versionCode,而versionName则显示你需要的长版本号,同时pub工具能正常解析版本号。
(可选)iOS端同步长版本名
如果iOS端也需要显示该长版本号,打开ios/Runner/Info.plist,修改CFBundleShortVersionString字段:
<key>CFBundleShortVersionString</key> <string>3.0.25.1</string>
内容的提问来源于stack exchange,提问作者blue492
相关产品推荐
相关产品推荐

