Fehlerbehebung
Lösungen für häufige Probleme: fvm nicht gefunden, Projektordner nicht lesbar, CocoaPods kaputt, kein Artefakt erkannt oder Upload gescheitert.
Hier stehen die Probleme, die am häufigsten auftreten, mit Ursache und Lösung. Scheitert ein Build selbst, zeigt die Station meist schon über dem Log, was los ist. Das beschreibt Wenn ein Build scheitert.
Erster Schritt bei fast allem: Kopier den angezeigten Befehl aus dem Tab Build und führ ihn im Terminal im Projektordner aus. Scheitert er dort genauso, liegt es am Projekt oder an der Toolchain, nicht an der Station.
Die App startet nicht
macOS meldet, die App sei beschädigt oder stamme von einem nicht verifizierten Entwickler. Das offizielle DMG von der Download-Seite ist signiert und notarisiert und öffnet sich ohne diese Meldung. Lade die App von dort neu und zieh sie in den Ordner Programme.
Nur eine ad hoc signierte Kopie, die nicht aus dem offiziellen DMG stammt, etwa per AirDrop oder Zip weitergegeben, braucht einmalig:
xattr -dr com.apple.quarantine "/Applications/iw Build Station.app"
Die App zeigt nach einem Update noch das alte Symbol. macOS hält Symbole im Cache. killall Dock im Terminal hilft.
Werkzeuge werden nicht gefunden
fvm: command not found, fastlane: command not found oder pod: command not found. Eine aus dem Finder gestartete App erbt die PATH-Einstellungen aus ~/.zshrc nicht. Die Station startet deshalb standardmäßig über eine Login-Shell.
- Öffne Einstellungen › Toolchain und sieh nach, was gefunden wird.
- Prüf unter Ausführung, dass der Shell-Modus auf Login-Shell (/bin/zsh -lc) steht.
- Fehlt ein Werkzeug weiterhin, ergänze seinen Ordner unter Zusätzliche PATH-Einträge. Den Ordner findest du im Terminal mit
which fvm. Danach Erneut prüfen.
fvm ist nicht installiert. Installier es mit brew install fvm. Ohne fvm nutzt die Station flutter aus dem PATH, dann können aber nicht mehrere Projekte unterschiedliche Flutter-Versionen haben.
Die Flutter-Version des Projekts fehlt. Die Station erkennt das im Log und bietet fvm install an.
Projektordner nicht lesbar
Liegt ein Projekt in iCloud Drive, auf dem Schreibtisch oder in Dokumente, fragt macOS beim ersten Zugriff nach. Hast du abgelehnt oder fehlen die Rechte, findet die Station den Ordner nicht oder kann nicht hineinschreiben.
Abhilfe: Systemeinstellungen › Datenschutz & Sicherheit › Festplattenvollzugriff, dort die iw Build Station hinzufügen und einschalten. Danach die App neu starten.
Das Projekt zeigt „Ordner fehlt”. Der Ordner wurde verschoben oder umbenannt. Öffne Projekt bearbeiten und wähl unter Projektordner mit Ändern … den neuen Ort.
CocoaPods
„CocoaPods ist installiert, aber nicht lauffähig”. Meist wurde CocoaPods mit einer anderen Ruby-Version installiert als der, die es gerade aufruft. Die Station schlägt brew install cocoapods vor. Mit Beheben läuft das über die Warteschlange.
Podfile.lock passt nicht zum installierten Stand. Beheben führt pod install aus. Hilft das nicht, gibt es unter Andere Wege das Neuaufbauen der Pods.
Der Pod-Index ist veraltet. pod repo update && pod install holt ihn neu.
Ohne CocoaPods gehen keine iOS- und macOS-Builds mit Plugins. Installieren kannst du es mit brew install cocoapods.
Builds
Ein Build hängt, auch nach dem Abbrechen. Gradle- und Dart-Daemons überleben manchmal einen Abbruch. Einstellungen › Wartung › Gradle-Daemons stoppen beendet sie. Bleibt Xcode hängen, hilft es, unter Aufräumen › Xcode, Android und Flutter die DerivedData zu löschen.
Kein Artefakt erkannt, obwohl der Build durchlief. Bei eigenen Scripts muss das Script eine Zeile BUILDSTATION_ARTIFACT=<pfad> ausgeben, oder das Preset braucht ein passendes Muster unter artifactGlobs. Siehe Eigene Scripts und Web-Builds.
Ein gescheiterter Build gilt als erfolgreich. Dem Script fehlt set -euo pipefail. Ohne diese Zeile überdecken Folgezeilen den Fehler, und das Script endet trotzdem mit Exit-Code 0.
Der Build bricht ab, weil der Branch nicht gewechselt werden kann. Das Projekt ist an einen Git-Branch gekoppelt, und im Ordner liegen uncommittete Änderungen. Committe oder verwirf sie. Siehe Projekte anlegen.
„Unsupported class file major version …” oder „Minimum supported Gradle version is …“. JDK, Gradle und Android-Gradle-Plugin passen nicht zusammen. Versionen prüfen … im Fehlerstreifen oder Versionen im Tab Build zeigt, was nicht passt, und schlägt die Änderung vor. Siehe Versionen und Updates.
Die Platte ist voll. Der Fehlerstreifen bietet Zwischenergebnisse leeren … an. Mehr Platz schaffst du unter Platz freiräumen.
config.json enthält Fehler. Hast du die Datei von Hand bearbeitet, zeigt ein Banner oben die fehlerhafte Stelle. Korrigier sie und klick Neu laden. Die Station überschreibt die Datei in der Zwischenzeit nicht.
Upload
Ein Upload scheitert. Die häufigsten Fehlerbilder stehen mit Ursache in den Kapiteln zu den Stores:
Lehnt ein Store die Zugangsdaten ab, erkennt die Station das und führt mit Upload-Einrichtung prüfen … zurück in die Einrichtung. Dort hilft Verbindung testen beim Eingrenzen.
„Diese Build-Nummer ist schon hochgeladen”. Jeder Store nimmt eine Build-Nummer nur einmal an. Erhöh sie und bau neu. Ist Build-Nummer automatisch hochzählen im Preset an, passiert das künftig von selbst.
Der Upload lief durch, aber TestFlight zeigt nichts. Apples Processing dauert nach dem Upload noch einige Minuten.
Transporter-Knopf ist grau. Transporter ist nicht installiert. Du bekommst ihn kostenlos im Mac App Store.
Drag-and-drop
Das Herausziehen aus der App klappt nicht. Nimmt das Zielfenster die Datei nicht an, funktionieren Im Finder und Pfad kopieren unverändert. Der Griff ist eine Abkürzung, kein Ersatz.
Lizenz und Fernzugriff
Der Lizenzschlüssel wird abgelehnt. Die Station nennt den Grund unter Einstellungen › Lizenz. Kann der Lizenzserver gerade nicht prüfen, versuch es später mit Jetzt prüfen. Siehe Lizenz.
Der Fernzugriff ist nicht erreichbar. Prüf, dass die App auf dem Mac läuft, die Lizenz gültig ist und ein Passwort gesetzt ist. Steht dort „Eingeschaltet, aber nicht erreichbar”, kann zum Beispiel der Port schon belegt sein. Probier dann einen anderen. Siehe Fernzugriff im Browser.
Immer noch nicht gelöst?
Schick uns den ausgeführten Befehl und den Log-Ausschnitt, den du mit Log kopieren im Verlauf bekommst. Kontakt findest du auf inwendo.de.