You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flutter Web中通过Dart代码获取pubspec.yaml的应用版本?

如何在Flutter Web中通过Dart代码访问pubspec.yaml的version属性

当然可以啦!有几种实用的方法能帮你在Flutter Web端的Dart代码里拿到pubspec.yaml里的version属性,我给你详细拆解下:

方法一:使用package_info_plus包(推荐)

这是Flutter官方生态里的主流工具包,支持包括Web在内的全平台,用起来省心又可靠:

  1. 先把依赖加到你的pubspec.yaml里:
dependencies:
  package_info_plus: ^8.0.0 # 建议用最新版本,可查pub.dev的最新号
  1. 执行flutter pub get拉取依赖
  2. 在Dart代码里这样用:
import 'package:package_info_plus/package_info_plus.dart';

Future<void> fetchAppVersion() async {
  // 获取包信息
  final packageInfo = await PackageInfo.fromPackageInfo();
  // 拿到pubspec里的version值
  final appVersion = packageInfo.version;
  // 还能拿到buildNumber(如果你的version里包含的话,比如1.0.0+1)
  final buildNumber = packageInfo.buildNumber;
  
  print('当前应用版本:$appVersion,构建号:$buildNumber');
  // 接下来就可以把version用在你需要的地方啦
}

这个包在Web端会自动帮你处理读取逻辑,不需要额外配置,直接用就行。

方法二:手动生成版本文件(无额外依赖)

如果你不想引入第三方包,也可以通过脚本提前把version生成到一个Dart文件里,运行时直接读取:

  1. 先加两个开发依赖到pubspec.yaml:
dev_dependencies:
  build_runner: ^2.4.6
  yaml: ^3.1.2
  1. 在项目根目录创建tool/build_version.dart脚本:
import 'dart:io';
import 'package:yaml/yaml.dart';

void main() {
  // 读取pubspec.yaml文件
  final pubspecFile = File('pubspec.yaml');
  final yamlContent = loadYaml(pubspecFile.readAsStringSync());
  // 提取version属性
  final appVersion = yamlContent['version'] as String;
  // 生成一个包含version的Dart文件到lib目录
  final outputFile = File('lib/app_version.dart');
  outputFile.writeAsStringSync('''
/// 自动生成的应用版本常量
const String appVersion = '$appVersion';
''');
}
  1. 运行脚本生成文件:dart run tool/build_version.dart
    你也可以把这个命令加到项目的构建流程里,这样每次修改pubspec的version后都能自动更新。
  2. 在代码里直接导入使用:
import 'package:your_app_name/app_version.dart';

void main() {
  print('当前应用版本:$appVersion');
}

注意事项

Web端出于安全限制,不能在运行时直接读取本地的pubspec.yaml文件,所以上面两种方法都是提前把version值注入到代码里的,这是Web端的必经之路哦~

内容的提问来源于stack exchange,提问作者sdabet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 09:52:49