Zum Inhalt springen
Build Station

Einstellungen und Sicherheit

Alle Einstellungen der Build Station, wo Konfiguration und Logs liegen, was im Schlüsselbund steht und was an welche Dienste gesendet wird.

Einstellungen in der Seitenleiste sammelt alles, was für die ganze Station gilt. Projektbezogene Einstellungen stehen dagegen im Projekt-Editor, siehe Projekte anlegen.

Die Abschnitte

Abschnitt Was du dort einstellst
Ausführung Shell-Modus, Parallele Builds, Benachrichtigung bei Build-Ende und flutter analyze beim Projektwechsel
Nach dem Upload Git-Tag setzen und Tag nach origin pushen, siehe Artefakte und Upload
Zusätzliche PATH-Einträge Ordner, die vor den PATH gestellt werden. Vorgabe: /opt/homebrew/bin und /usr/local/bin
Sammelordner wo die Artefakte landen, Vorgabe ~/Builds/iw-buildstation
Codemagic API-Token, siehe Codemagic
KI-Reparatur Claude-API-Schlüssel, Modell, Tageslimit, siehe Wenn ein Build scheitert
MCP-Server Anmeldung bei einem KI-Assistenten, siehe MCP-Server
Toolchain welche Werkzeuge in der gewählten Shell gefunden werden
Wartung Gradle-Daemons stoppen
Dateien Ort von config.json, runs.json, settings.json und den Logs
Lizenz Lizenzschlüssel und Status, siehe Lizenz
Fernzugriff Bedienung im Browser, siehe Fernzugriff
Über die App Version, Nach Updates suchen und Nutzungshinweis anzeigen

Shell-Modus und Toolchain

Eine aus dem Finder gestartete App erbt die PATH-Einstellungen aus ~/.zshrc nicht. Deshalb startet die Station jeden Befehl standardmäßig über eine Login-Shell (/bin/zsh -lc), die deine Shell-Konfiguration lädt. Die Alternative Direkt (/bin/zsh -c) lädt sie nicht und findet deshalb oft fvm oder fastlane nicht.

Unter Toolchain prüft die Station fvm, flutter, git, java, xcrun, pod und zip und zeigt die gefundene Version. Fehlt ein benötigtes Werkzeug, hilft meist die Login-Shell oder ein zusätzlicher PATH-Eintrag. Erneut prüfen wiederholt den Test.

Updates der Build Station

Nach Updates suchen unter Über die App fragt, ob es eine neue Version gibt, und zeigt sie mit Release Notes an. Die signierte Version vom Download sucht außerdem selbst einmal täglich.

Wo deine Daten liegen

Alles, was die Station speichert, liegt in einem Ordner:

~/Library/Application Support/de.inwendo.buildstation/
Datei Inhalt
config.json Projekte und Presets
runs.json Build-Historie mit Checklisten
settings.json globale Einstellungen
uploads.json wann welche Version in welchen Store ging
license.json Ergebnis der letzten Lizenzprüfung, ohne den Schlüssel
remote_access.json Einstellungen und Passwort-Hash für den Fernzugriff
autofix_rules.json gespeicherte Reparatur-Regeln
autofix/backups/ Sicherungen vor automatischen Reparaturen
logs/<Lauf-ID>.log vollständige Build-Logs

Alle Schreibvorgänge sind atomar: Die Station schreibt erst eine temporäre Datei und benennt sie dann um. Ein Absturz mitten im Schreiben zerstört die Historie nicht.

config.json von Hand bearbeiten

Normalerweise musst du keine JSON-Datei anfassen. Wenn du willst, geht es trotzdem: Einstellungen › Dateien › Im Editor öffnen, bearbeiten, speichern, dann in der Seitenleiste neben PROJEKTE auf das Symbol Konfiguration neu laden klicken.

Enthält die Datei Fehler, zeigt die Station einen Banner mit der Stelle und lässt die Datei unverändert. Sie wird nie durch einen Stand ersetzt, den die Station nicht lesen konnte.

Der Schlüsselbund

Zugangsdaten stehen nie in config.json. Sie liegen im macOS-Schlüsselbund dieses Macs:

Dienst Inhalt
de.inwendo.buildstation.store Store-Zugangsdaten pro Projekt: Service-Account, .p8, Partner-Center-Schlüssel, Webhook-Geheimnis, Sparkle-Schlüssel
de.inwendo.buildstation.codemagic Codemagic-API-Token
de.inwendo.buildstation.anthropic Claude-API-Schlüssel
de.inwendo.buildstation.license Lizenzschlüssel

In der Schlüsselbundverwaltung kannst du die Einträge ansehen und löschen. In der Station entfernen die Knöpfe Aus Schlüsselbund entfernen bzw. Entfernen sie gezielt.

Eine weitergegebene config.json oder buildstation.json enthält damit keine Zugangsdaten. Ausnahme: Für fastlane supply steht der Pfad zur Service-Account-JSON in der Konfiguration, nicht ihr Inhalt.

Geheimnisse in Dart-Defines

Der vorgesehene Weg für Geheimnisse, die in die App gehören, ist --dart-define-from-file auf eine Datei im Projekt, die per .gitignore ausgeschlossen ist. Die Station liest deren Inhalt nie, sie reicht nur den Pfad weiter.

Werte in Dart-Defines und Env, deren Schlüssel auf KEY, SECRET, TOKEN, PASSWORD oder DSN passt, zeigt die Oberfläche maskiert an. Das schützt vor Blicken über die Schulter, ist aber keine Verschlüsselung: In config.json stehen sie im Klartext.

Ohne Sandbox

Die Build Station läuft ohne App Sandbox. Sonst könnte sie weder Flutter, Xcode und Gradle starten noch in deinen Projektordnern lesen und schreiben. Deshalb gibt es sie auch nicht im Mac App Store.

Daraus folgt: Presets sind ausführbarer Code. Ein eigenes Script läuft mit allen Rechten deines macOS-Benutzers. Eine importierte Projekt-JSON, eine buildstation.json aus einem fremden Repository oder ein weitergegebenes Projekt ist so vertrauenswürdig wie ein fremdes Shell-Script. Schau hinein, bevor du es übernimmst.

Die Station selbst führt nie sudo aus. Befehle, die ein Administrator-Passwort brauchen, zeigt sie nur an und öffnet dafür ein Terminal.

Was an wen gesendet wird

Die Station schickt Daten nur an Dienste, die du einrichtest oder auslöst:

Ziel Was Wann
Google Play, App Store Connect, Microsoft Partner Center Artefakte, Release Notes, signierte Anmelde-Tokens beim Upload, beim Verbindungstest und beim Abfragen des letzten Store-Stands
Apple Notarisierung die zu notarisierende App beim macOS-Direktvertrieb
GitHub (über gh) oder dein Webhook DMG, Appcast, Metadaten beim macOS-Direktvertrieb und beim Einrichten eines Codemagic-Webhooks
Codemagic API-Aufrufe mit deinem Token im Tab Codemagic
Anthropic Log-Auszüge, Build-Dateien, einzelne Projektdateien bzw. Commit-Betreffzeilen nur bei Mit Claude analysieren und Aus Commits vorschlagen (KI)
inwendo-Lizenzserver dein Lizenzschlüssel beim Start und einmal täglich, nur mit eingetragener Lizenz

Dazu kommen Abfragen ohne persönliche Daten: die offizielle Flutter-Release-Liste für Flutter-Updates und pub.dev für Reparaturvorschläge.

Store-Schlüssel verlassen den Mac nie im Klartext, nur als signiertes Token an den jeweiligen Store. Die .p8 liegt für die Dauer eines altool-Aufrufs in einem Temp-Ordner, den nur dein Benutzer lesen kann.

Nutzungshinweis

Beim ersten Start zeigt die Station einen Nutzungshinweis, dem du zustimmst. Er fasst zusammen, was die App auf deinem Mac tut und wofür du verantwortlich bist. Nachlesen kannst du ihn jederzeit unter Einstellungen › Über die App › Nutzungshinweis anzeigen.

Sicherheitslücken melden

Hast du eine Sicherheitslücke gefunden, schreib bitte an security@inwendo.de.