top of page
  • AutorenbildMarkus Kühle

Flutter SDK Versions-Downgrade mit Git - schnelle Variante

Um die Flutter SDK Version zu wechseln existieren mehrere Möglichkeiten, hier soll die einfachste und sehr schnelle Variante mit einem Git Checkout gezeigt werden.




Ab und an muss auf eine ältere Flutter Version gewechselt werden um z.b. eine ausgelieferte App mit der damals verwendeten Flutter Version zu starten und zu untersuchen. Deswegen lohnt es sich auch immer die Flutter Version (und auch Packages) in der pubspec.yaml festzuziehen denn so hat man implizit auch gleichen eine Dokumentation der verwendeten Versionen.


Aktive Flutter Version prüfen

In der Regel ist immer die aktuellste Version installiert aber sichergehen kannst du nur über den Befehl "flutter --version". In meinem Fall bin ich gerade auf der aktuellsten Version 3.7.7.

Terminal Screenshot mit dem Befehl flutter --version

Für mein App-Projekt benötige ich allerdings die Version 2.2.3. Wir haben die App Anfang 2022 an einen Kunden ausgeliefert und seit dem wurde sie auch nicht mehr aktualisiert. Nun ist ein Fehler aufgetreten den wir untersuchen möchten. Um den Fehler exakt in der gleichen Umgebung nachzustellen ist es notwendig auch die damals verwendete Flutter Version zu verwenden.

So möchten wir die in der pubspec.yaml festgeschriebenen Dart und Flutter Versionen für den App Test verwenden.


Alle Flutter Versionen als Git-Tag verfügbar

Der einfachste und wohl auch schnellste Weg, um seine Flutter Version zu downgraden, ist das entsprechende Flutter Git Repository Tag auszuchecken.


Flutter hält alle Sourcen in seinem Flutter GitHub Repository und tagt jede einzelne Version, die in den verschiedenen Flutter Channels vorhanden sind:

So ist es ohne Probleme möglich jedes beliebige Tag auszuchecken.


Downgrade der Flutter Version über Checkout

Um den Git Checkout durchzuführen musst du in den Ordner deiner Flutter Installation wechseln. In meiner ZSH-Console auf dem Mac sieht man sofort, dass es sich auch hier nur um ein ausgechecktes Git Repository handelt. Es ist auch gut zu sehen, dass ich im stable Channel bin:

Screenshot ZSH-Console mit Flutter Folder und Git-Info

Um nun zur anderen Version zu wechseln muss einfach nur ein Git-Checkout ausgeführt werden. Dabei als Tag die gewünschte Version angeben:

git checkout 2.2.3

Folgende Ausgabe sollte auch in deinem Terminal zu sehen sein. Auch der Git-Hash zum Tag 2.2.3 ist in der Console am Ende zu sehen.

Screenshot Terminal mit dem Befehl git checkout 2.2.3

Um den Wechsel der Flutter Version abzuschließen musst du noch einmal entweder "flutter --version" oder "flutter doctor" aufrufen.

flutter --version

Flutter baut nun lokal deine ausgewählte Flutter Version:

Screenshot Console mit dem Befehl flutter --version um die ausgecheckte Version zur Verfügung zu stellen

Flutter Upgrade und Flutter Channels

Um wieder auf die aktuelle Flutter Version zu wechseln muss zuerst der Channel ausgewählt werden, weil man sich jetzt durch den Checkout außerhalb davon bewegt.

Es existieren 3 Release Channels: stable, beta und master. Der dev channel ist seit Flutter 2.8 nicht mehr aktiv.

Sofern man nicht in irgendwelchen pre-Releases arbeiten möchte sollte man immer auf dem stable-Channel sein. Dazu erst den Channel wechseln und anschleißend flutter upgrade ausführen:

flutter channel stable
flutter upgrade


So gelangt man sehr bequem wieder auf die aktuelle Version.

Natürlich kann man auch jeden beliebigen Tag auschecken um auf dieser Version zu arbeiten.


Muss man gleichzeitig in verschiedenen Flutter Projekten arbeiten, die auch in verschiedenen Flutter Versionen arbeiten lohnt sich ein Blick auf den Flutter Version Manager FVM, der auch über die Cli und abgelegten Konfigurationen in jedem Projekt arbeitet: https://fvm.app/



bottom of page