Flutter-Interna ermitteln

mit den Flags -- version --machine

Flutter-Interna ermitteln

Die aktuelle Version von Flutter, Stand "Flutter 2.5.3 • channel stable", bietet keine Möglichkeit, zur Laufzeit die Flutter-Version zu ermitteln, mit der die App gebaut wurde.

Folgendes kleines bash-Skript ermittelt die Interna der aktuellen flutter-Installation und ....

echo "const Map version = " > lib/flutter_version.dart
flutter --version --machine >> lib/flutter_version.dart
echo ";" >> lib/flutter_version.dart
sed -i 's/"/\x27/g' lib/flutter_version.dart
sed -i '/flutterRoot/d'  lib/flutter_internals.dart  

für MacOS muss der sed Befehl angepasst werden

echo "const Map version = " > lib/flutter_version.dart
flutter --version --machine >> lib/flutter_version.dart
echo ";" >> lib/flutter_version.dart
sed -i '' 's/"/\x27/g' lib/flutter_version.dart
sed -i '' '/flutterRoot/d'  lib/flutter_internals.dart  

Windows cmd-Pendant

echo const Map version =  > lib/flutter_version.dart
flutter --version --machine >> lib/flutter_version.dart
echo ; >> lib/flutter_version.dart

... speichert die ermittelten Daten als Map in der Datei "lib/flutter" ab.

const Map version = {
  'frameworkVersion': '2.5.3',
  'channel': 'stable',
  'repositoryUrl': 'https://github.com/flutter/flutter.git',
  'frameworkRevision': '18116933e77adc82f80866c928266a5b4f1ed645',
  'frameworkCommitDate': '2021-10-15 10:46:35 -0700',
  'engineRevision': 'd3ea636dc5d16b56819f3266241e1f708979c233',
  'dartSdkVersion': '2.14.4',
  'flutterRoot': '/home/pezi/development/flutter'
};

Diese Map kann beispielsweise wie folgt eingebunden werden:

import 'flutter_version.dart';
...
var packageInfo =
        'Flutter (Channel ${version['channel']}, ${version['frameworkVersion']})';