220 votes

Comment obtenir le numéro de build et de version d'une application Flutter ?

Je suis en train de développer une application qui est actuellement en mode bêta. De ce fait, j'aimerais leur montrer sur quelle version ils se trouvent. Par exemple, "v1.0b10 - iOS". Jusqu'à présent, j'ai obtenu ce code : Text("Build: V1.0b10 - " + (Platform.isIOS ? "iOS" : "Android")) . Comment pourrais-je obtenir la version et le numéro de construction dans Flutter ?

1 votes

367voto

diegoveloper Points 24042

Vous pouvez utiliser paquet_info_plus .

Les versions sont extraites de :

Android :

build.gradle, versionCode and versionName

iOS :

Info.plist, CFBundleVersion

Utilisation

Ajouter la dépendance

  1. Ajoutez ceci au fichier pubspec.yaml de votre paquet :

    dependencies: package_info_plus: ^1.0.6

  2. Importez le fichier dans votre fichier dart :

    import 'package:package_info_plus/package_info_plus.dart';

  3. si votre méthode est marquée comme async :

    PackageInfo packageInfo = await PackageInfo.fromPlatform();

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

Si vous ne voulez pas utiliser await/async :

PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
  String appName = packageInfo.appName;
  String packageName = packageInfo.packageName;
  String version = packageInfo.version;
  String buildNumber = packageInfo.buildNumber;
});

115voto

Suragch Points 197

_Nota : Cette réponse a été mise à jour pour refléter le fait que la informations sur les paquets est déprécié et redirige vers le plugin paquet_info_plus ._

Nom de la version et numéro de build

Au moment du développement, vous pouvez facilement trouver le nom de la version et le numéro de build d'un projet Flutter ou Dart en inspectant les pages suivantes pubspec.yaml . Voici un exemple :

version: 1.1.0+2

Dans ce cas, le nom de la version est 1.1.0 et le numéro de construction est 2 .

Toutefois, si vous souhaitez obtenir ces valeurs au moment de l'exécution, vous devez utiliser un plugin.

Ajouter la dépendance

En pubspec.yaml ajouter le package_info_plus paquet.

dependencies:
  package_info_plus: ^1.0.2

Mettez à jour le numéro de version à la actuel un.

Importez le paquet

Dans le fichier dont vous avez besoin, ajoutez l'importation suivante.

import 'package:package_info_plus/package_info_plus.dart';

Obtenir le nom et le code de la version

Dans votre code, vous pouvez obtenir le nom de la version de l'application et le code comme ceci :

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

Voir aussi

17voto

Hashem Aboonajmi Points 849

Installer paquet_info_plus Vous pouvez ensuite l'utiliser directement avec le Future Builder dans votre arborescence de widgets :

 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();
                }
              },
            ),

7voto

user1076543 Points 11

RE les multiples références à package_info veuillez noter que ce paquet a été déprécié et que le remplacement recommandé est le paquet Plugins de la communauté Flutter Plus version, paquet_info_plus .

6voto

Pinhassi Points 4297

Pour l'utiliser en ligne de commande ou en CLI, vous avez besoin d'un code Dart pur.

J'ai utilisé le script suivant :

// 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]);
}

Vous pouvez l'exécuter à partir du dossier racine du projet :

dart run scripts/get_version_name.dart

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X