Flutter-Interna ermitteln
mit den Flags -- version --machine
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']})';