开发者问题收集

如何获取 Flutter 应用的版本号

2018-12-07
240677

我目前正在开发一款应用,目前处于测试模式。因此,我想向他们展示他们使用的版本。例如,“v1.0b10 - iOS”。到目前为止,我得到了以下代码: Text("Build: V1.0b10 - " + (Platform.isIOS ? "iOS" : "Android")) 。我如何在 Flutter 中获取构建版本和编号?

3个回答

您可以使用 package_info_plus

版本提取自:

Android:

build.gradle, versionCode and versionName

iOS:

Info.plist, CFBundleVersion

用法

添加依赖项

  1. 将其添加到您的包的 pubspec.yaml 文件中:
dependencies:
  package_info_plus: ^1.0.6
  1. 将文件导入您的 dart 文件:
import 'package:package_info_plus/package_info_plus.dart';
  1. 如果您的方法标记为 async :
PackageInfo packageInfo = await PackageInfo.fromPlatform();

String appName = packageInfo.appName;
String packageName = packageInfo.packageName;
String version = packageInfo.version;
String buildNumber = packageInfo.buildNumber;

如果您不想使用 await/async :

PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
  String appName = packageInfo.appName;
  String packageName = packageInfo.packageName;
  String version = packageInfo.version;
  String buildNumber = packageInfo.buildNumber;
});
diegoveloper
2018-12-07

注意 :此答案已更新,以反映 package_info 插件已被弃用并重定向到 package_info_plus 的事实。

版本名称和内部版本号

在开发时,您可以通过检查 pubspec.yaml 轻松找到 Flutter 或 Dart 项目的版本名称和内部版本号。以下是示例:

version: 1.1.0+2

此情况下,版本名称为 1.1.0 ,内部版本号为 2

但是,如果您想在运行时获取这些值,则应使用插件。

添加依赖项

pubspec.yaml 中添加 package_info_plus 包。

dependencies:
  package_info_plus: ^1.0.2

将版本号更新为 当前 版本。

导入包

在您需要的文件中,添加以下内容导入。

import 'package:package_info_plus/package_info_plus.dart';

获取版本名称和代码

在您的代码中,您可以像这样获取应用程序版本名称和代码:

PackageInfo packageInfo = await PackageInfo.fromPlatform();
String version = packageInfo.version;
String code = packageInfo.buildNumber;

另请参阅

Suragch
2019-01-25

安装 package_info_plus ,然后您可以在小部件树中直接将其与未来的构建器一起使用:

FutureBuilder<PackageInfo>(
              future: PackageInfo.fromPlatform(),
              builder: (context, snapshot) {
                switch (snapshot.connectionState) {
                  case ConnectionState.done:
                    return Align(
                      alignment: Alignment.bottomCenter,
                      child: Text(
                        'Version: ${snapshot.data!.version}',),
                      );
                  default:
                    return const SizedBox();
                }
              },
            ),
Hashem Aboonajmi
2021-03-18