我目前正在开发一个应用程序,目前处于测试模式。因此,我想向他们展示他们的版本。例如,“v1.0b10 - iOS”。到目前为止,我得到了以下代码:Text("Build: V1.0b10 - " + (Platform.isIOS ? "iOS" : "Android"))。我如何能够在flutter中获得构建版本和编号?
Text("Build: V1.0b10 - " + (Platform.isIOS ? "iOS" : "Android"))
wljmcqd81#
您可以使用package_info_plus。版本提取自:安卓系统:
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:
async
PackageInfo packageInfo = await PackageInfo.fromPlatform(); String appName = packageInfo.appName; String packageName = packageInfo.packageName; String version = packageInfo.version; String buildNumber = packageInfo.buildNumber;
如果不想使用await/async:
await/async
PackageInfo.fromPlatform().then((PackageInfo packageInfo) { String appName = packageInfo.appName; String packageName = packageInfo.packageName; String version = packageInfo.version; String buildNumber = packageInfo.buildNumber; });
htzpubme2#
注:此答案已更新,以反映package_info插件已弃用并重定向到package_info_plus。
在开发时,通过检查pubspec.yaml,可以很容易地找到Flutter或Dart项目的版本名和内部版本号。
version: 1.1.0+2
这是版本名称为1.1.0且内部版本号为2的情况。但是,如果您希望在运行时获得这些值,则应该使用插件。
1.1.0
2
在pubspec.yaml中添加package_info_plus包。
package_info_plus
dependencies: package_info_plus: ^1.0.2
将版本号更新为current。
在您需要的文件中,添加以下导入。
在您的代码中,您可以获取应用版本名称和代码,如下所示:
PackageInfo packageInfo = await PackageInfo.fromPlatform(); String version = packageInfo.version; String code = packageInfo.buildNumber;
nfeuvbwi3#
安装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(); } }, ),
pdkcd3nj4#
关于对package_info的多个引用,请注意,此软件包已被弃用,建议使用Flutter Community Plus Plugins版本package_info_plus。
package_info
jaxagkaj5#
您可以尝试new_version插件。使用此插件,您可以获得安装的应用程序版本,Playstore应用程序版本和应用程序URL,可以重定向到Playstore。New Version Plugin
new_version
void versionCheck() async { final NewVersion newVersion = NewVersion(context: context); VersionStatus versionStatus = await newVersion.getVersionStatus(); if (versionStatus != null && versionStatus.canUpdate) { await ConfirmDialog( context: context, title: 'Update Available', body: Text('A new version, ${versionStatus.storeVersion}, is available.'), acceptButton: 'Update Now', cancelButton: 'Update Later' ).then((ConfirmAction res) async { if (res == ConfirmAction.CONFIRM && await canLaunch(versionStatus.appStoreLink)) { await launch(versionStatus.appStoreLink, forceWebView: false); } }); } }
“自定义警报”对话框
enum ConfirmAction{ CONFIRM, CANCEL } Future<ConfirmAction> ConfirmDialog({ BuildContext context, String title, Widget body, String acceptButton, String cancelButton }) => showDialog( context: context, barrierDismissible: false, builder: (BuildContext context) => AlertDialog( title: Wrap( crossAxisAlignment: WrapCrossAlignment.center, spacing: 4, children: <Widget>[ Text(title) ], ), content: Wrap( runSpacing: 10, children: <Widget>[ body, ], ), actions: <Widget>[ FlatButton( padding: EdgeInsets.all(6), child: Text(acceptButton ?? 'Confirm'), onPressed: (){ Navigator.of(context, rootNavigator: true).pop(ConfirmAction.CONFIRM); } ), FlatButton( padding: EdgeInsets.all(6), child: Text(cancelButton ?? 'Cancel'), onPressed: (){ Navigator.of(context, rootNavigator: true).pop(ConfirmAction.CANCEL); } ), ], ) );
s71maibg6#
要从命令行或CLI使用它,您需要一个纯Dart代码。我使用了以下脚本:
// ignore_for_file: avoid_print import 'dart:io'; import 'package:path/path.dart'; import 'package:yaml/yaml.dart'; String pathToYaml = join(dirname(Platform.script.toFilePath()), '../pubspec.yaml'); Future<YamlMap> loadPubspec() async => loadYaml(await File(pathToYaml).readAsString()); void main() async { var pubspec = await loadPubspec(); print(pubspec['version'].toString().split('+')[0]); }
您可以从项目根文件夹执行它:
dart run scripts/get_version_name.dart
ygya80vv7#
在Flutter移动的应用程序中,版本号位于pubspec.yaml文件中,如下所示:
pubspec.yaml
version: 1.0.0+1
要获取版本名称和代码,请将package_info依赖项添加到pubspec.yaml文件中,如下所示:
dependencies: package_info: ^0.4.0+16
还有
import 'package:package_info/package_info.dart'; // import the package_info Future<void> _initPackageInfo() async { final _packageInfo = await PackageInfo.fromPlatform(); setState(() { String AppName = _packageInfo.appName; String PackageName = _packageInfo.packageName; String AppVersion = _packageInfo.version; String BuildNumber = _packageInfo.buildNumber; String BuildSignature = _packageInfo.buildSignature; }); }
7条答案
按热度按时间wljmcqd81#
您可以使用package_info_plus。
版本提取自:
安卓系统:
iOS系统:
用法
新增相依性
1.将以下代码添加到包的pubspec.yaml文件中:
1.将文件导入dart文件:
1.如果您的方法标记为
async
:如果不想使用
await/async
:htzpubme2#
注:此答案已更新,以反映package_info插件已弃用并重定向到package_info_plus。
版本名称和内部版本号
在开发时,通过检查pubspec.yaml,可以很容易地找到Flutter或Dart项目的版本名和内部版本号。
这是版本名称为
1.1.0
且内部版本号为2
的情况。但是,如果您希望在运行时获得这些值,则应该使用插件。
新增相依性
在pubspec.yaml中添加
package_info_plus
包。将版本号更新为current。
汇入套件
在您需要的文件中,添加以下导入。
获取版本名称和代码
在您的代码中,您可以获取应用版本名称和代码,如下所示:
另请参阅
nfeuvbwi3#
安装package_info_plus,然后您可以直接将它与小部件树中未来构建器一起使用:
pdkcd3nj4#
关于对
package_info
的多个引用,请注意,此软件包已被弃用,建议使用Flutter Community Plus Plugins版本package_info_plus。jaxagkaj5#
您可以尝试
new_version
插件。使用此插件,您可以获得安装的应用程序版本,Playstore应用程序版本和应用程序URL,可以重定向到Playstore。New Version Plugin
“自定义警报”对话框
s71maibg6#
要从命令行或CLI使用它,您需要一个纯Dart代码。
我使用了以下脚本:
您可以从项目根文件夹执行它:
ygya80vv7#
在Flutter移动的应用程序中,版本号位于
pubspec.yaml
文件中,如下所示:要获取版本名称和代码,请将
package_info
依赖项添加到pubspec.yaml
文件中,如下所示:还有