Nach Befehlen und Fehlerbegriffen suchen

Vom Verbindungsaufbau bis zur Auslieferung von iOS-Build-Artefakten.

Für Einsteiger, Release Engineers und CI/CD-Verantwortliche. Gib einen Befehl, einen Fehlerauszug oder einen Aufgabennamen ein, grenze das Problem ein und prüfe anschließend die erwartete Ausgabe.

Aktuell werden 8 Einstiege angezeigt.

RUNBOOK / OAK-06 Abnahmeindex für Build-Knoten
01
VerbindungszugangSSH · VNC · Bildschirmfreigabe
Prüfen
02
Build-UmgebungXcode · Signatur-Assets · Cache
Prüfen
03
AufgabenausführungRunner-Tags · isolierte Verzeichnisse
Prüfen
04
Ergebnisse ausliefernarchive · export · logs
Archivieren
Grundsatz der Fehleranalyse Immer nur eine Variable ändern

Zuerst anhand des Symptoms das passende Runbook öffnen

Jeder Einstieg nennt Prüfobjekte, Befehle oder Beobachtungswerte. Die Filter ändern nur die Einstiege unten; die vollständigen Abschnitte bleiben sichtbar.

Zuerst den Zugang bestätigen, dann Knoteneinstellungen ändern

Maßgeblich sind die aktuellen Instanzdetails in der Konsole. Adressen und Zugangsdaten nicht aus alten Tickets, Chatverläufen oder früheren Skripten übernehmen.

Empfohlene Reihenfolge · 4 Punkte

Abnahmecheckliste für die Erstanmeldung

Zuerst eine stabile Verbindung herstellen, dann Passwort und Zeitzone prüfen. Netzwerk, Auflösung und Authentifizierung nicht gleichzeitig ändern, sonst lässt sich die Ursache nicht zuordnen.

  1. 01

    Aktuelle Verbindungsdaten aus der Konsole abrufen

    Region, Hostadresse, Port, Benutzername und Instanzstatus prüfen. Zugangsdaten nur in einem kontrollierten Passwortmanager speichern, nicht im Repository oder Build-Log.

  2. 02

    Die grundlegende Verbindung per SSH prüfen

    Ausführen ssh -v user@host Damit werden Auflösung, Handshake und Authentifizierungsphasen angezeigt. Bei einem Timeout vor dem Verbindungsaufbau zuerst lokales Netzwerk und Port prüfen; bei Authentifizierungsfehlern Benutzername und aktuelle Zugangsdaten kontrollieren.

  3. 03

    Grafische Verbindung passend zur Aufgabe wählen

    Für Arbeiten in der Xcode-Oberfläche VNC oder Bildschirmfreigabe verwenden. Zunächst Auflösung und Farben unverändert lassen und Tastatur, Maus sowie Zwischenablage prüfen, bevor die Bildqualität angepasst wird.

  4. 04

    Prüfung der Erstanmeldung abschließen

    Initialpasswort ändern, date und systemsetup -gettimezone ausführen, um Zeit und Zeitzone zu prüfen und sicherzustellen, dass das Projektverzeichnis dem aktuellen Aufgabenbenutzer gehört.

Build-Eingaben und Artefaktpfade im Runbook dokumentieren

Ein reproduzierbarer iOS-Build erfordert eine feste Toolchain, einen definierten Projekteinstieg, Signatur-Assets, Archivparameter und Exportpfad. „Build fehlgeschlagen“ reicht für eine Prüfung nicht aus.

01 / TOOLCHAIN

Xcode-Befehlszeilentools festlegen

Zuerst xcode-select -p und xcodebuild -versionausführen, um Entwicklerverzeichnis und Xcode-Version zu bestätigen, die das Skript tatsächlich verwendet. Nach einem Versionswechsel beide Befehle erneut ausführen und nicht den Titel des Terminalfensters heranziehen.

02 / SIGNING

Zertifikate, private Schlüssel und Provisioning-Profile trennen

Der Zugriff auf Signatur-Assets ist nach Projekt und Umgebung zu begrenzen. Nach dem Import mit security find-identity -v -p codesigning verfügbare Identitäten prüfen und Zertifikatspasswörter nicht im Pipeline-Log ausgeben.

03 / ARCHIVE

Workspace, Scheme und Archivpfad festlegen

Das Skript muss Workspace oder Project, ein freigegebenes Scheme, Configuration und -archivePathexplizit angeben. Auf dem Build-Rechner nicht von einer temporären Auswahl der letzten Xcode-Sitzung abhängen.

04 / EXPORT

Exportresultate und Logs gemeinsam speichern

Mit -exportArchive und einer versionskontrollierten Exportkonfiguration Artefakte erzeugen. Archive, Exportresultate, Build-Logs und Commit-ID speichern; bei Fehlern auch bereinigte Diagnoseinformationen aufbewahren.

BUILD RECORD Grundgerüst des Archivierungsbefehls
xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -configuration Release \
  -archivePath "$PWD/output/App.xcarchive" \
  clean archive
EingabenCommit-ID, Lockdateien der Abhängigkeiten, Xcode-Version, Scheme
AusgabenArchivverzeichnis, Exportverzeichnis, Roh-Logs, Aufgabennummer
Bei Fehlern aufbewahrenExit-Code, erster Fehlerabschnitt, Umgebungsversionen; keine sensiblen Werte

Die Runner-Registrierung ist erst der Anfang; Isolierungsregeln sichern den Dauerbetrieb

OakVM-Knoten sind dedizierte physische Rechner, keine virtuellen Maschinen. Parallelität wird durch zusätzliche dedizierte Knoten erweitert; auch auf demselben Knoten müssen Warteschlange, Tags und Arbeitsverzeichnisse klar abgegrenzt sein.

GITHUB ACTIONS

Projekte per Tags auf bestimmte Knoten routen

  • Einen self-hosted Runner auf Repository- oder Organisationsebene erstellen und die Registrierungszuordnung dokumentieren.
  • Regions-, Chip- und Zweck-Tags verwenden, etwa getrennte Tags für Releases und Alltagstests.
  • Der Workflow wird über runs-on präzise zugeordnet; keine mehrdeutigen allgemeinen Tags verwenden.
  • Nach jeder Aufgabe temporäre Schlüsselbunde, Verzeichnisse und nur für diesen Lauf benötigte Umgebungsvariablen entfernen.
GITLAB CI

Runner-Bereich und Aufgabentags eindeutig definieren

  • Prüfen, ob der Runner zur Instanz, Gruppe oder zum Projekt gehört, damit keine fremden Projekte ihn nutzen können.
  • In der Aufgabe tags deklarieren und die Annahme nicht markierter Aufgaben deaktivieren, wenn sie nicht benötigt wird.
  • Projektspezifische Cache-Schlüssel verwenden, damit inkompatible Ergebnisse verschiedener Branches oder Anwendungen nicht geteilt werden.
  • Jobnummer, Commit-ID und Runner-Name für die Zuordnung zu den Knotenlogs aufbewahren.
GENERIC RUNNER

Beim allgemeinen Runner zuerst den Lebenszyklus definieren

  • Registrierungsskript, Dienststart und Logpfad gehören ins Team-Betriebshandbuch.
  • Für jede Aufgabe ein eigenes Arbeitsverzeichnis anlegen und Cache sowie Artefakte anschließend nach der Aufbewahrungsregel behandeln.
  • Für jeden physischen Knoten ein klares Parallelitätslimit festlegen, damit schwere Archivierungsaufgaben keine Ressourcen verdrängen.
  • Der Knoten läuft 365 Tage im Jahr normal; Wiederholungsversuche müssen dennoch begrenzt und Fehlerursachen protokolliert werden.

Isolierungsgrundlage:Projektverzeichnisse, Build-Cache, Signatur-Assets und Artefaktverzeichnisse getrennt verwalten. Nicht routinemäßig den gesamten Knoten leeren und keine zwei Projekte dieselben beschreibbaren Signaturverzeichnisse verwenden lassen.

Von der Bildlast schrittweise zur Netzwerkverbindung prüfen

Subjektive Verzögerungen bei VNC und Bildschirmfreigabe müssen nicht durch die Rechenlast des Knotens verursacht werden. Tests in fester Reihenfolge unterscheiden Codierlast, lokale Netzwerkschwankungen und Konkurrenz durch Hintergrundaufgaben.

  1. 01

    Auflösung reduzieren

    Die Bildschirmauflösung zunächst auf die niedrigste für die aktuelle Aufgabe erforderliche Stufe setzen und ungenutzte zusätzliche Anzeigebereiche deaktivieren. Wird die Reaktion deutlich besser, liegt die Ursache eher in der zu codierenden Bildmenge.

    Zeiger- und Fensterbewegungen beobachten
  2. 02

    Farben und dynamische Inhalte reduzieren

    Videos, Animationsvorschauen und kontinuierlich aktualisierte Überwachungsfenster pausieren. Beim Build unnötige Simulatoransichten schließen und prüfen, ob statische Bearbeitung wieder stabil läuft.

    Statische und dynamische Anzeige vergleichen
  3. 03

    Zielbildrate anpassen

    Für Codebearbeitung und Releases ist meist keine hohe Bildrate nötig. Zuerst auf Eingabereaktion und klare Schrift achten, dann die Darstellung schrittweise flüssiger machen.

    Änderung der Eingabelatenz dokumentieren
  4. 04

    Netzwerkschwankungen prüfen

    Am Knoten kontinuierliche Kurzzeit-Latenztests ausführen und Schwankungen sowie Paketverlust beachten, nicht nur den niedrigsten Einzelwert. Nach einem Wechsel des lokalen Netzwerks mit derselben Stichprobengröße erneut testen.

    Zusammenfassung der Stichprobe aufbewahren
  5. 05

    Teamzugriff festlegen

    Pro Aufgabe nur eine hauptverantwortliche Person bedienen lassen; andere Teammitglieder über Build-Logs und Artefaktnachweise einbeziehen. Gleichzeitige Bedienung der grafischen Oberfläche erhöht Kontextkonflikte.

    Aktuelle Bedienperson festhalten

Zuerst Begriffe vereinheitlichen, dann Konfiguration und Grenzen besprechen

Die folgenden Begriffe werden auf OakVM-Seiten, in der Konsole und im Support verwendet. Sie beschreiben Bereitstellungsform und Workflow und stellen keine Empfehlung durch Drittplattformen dar.

Physischer Knoten
Physisches Apple-Silicon-Gerät, das macOS und Build-Aufgaben direkt ausführt und die Recheneinheit der Bestellung bildet.
Dediziert
Während der Mietdauer werden die Rechenressourcen des Knotens von der aktuellen Bestellung genutzt; derselbe physische Rechner wird nicht mit Aufgaben anderer Kunden geteilt.
Cloud Mac
In einem Rechenzentrum bereitgestellte Mac-Umgebung, die über das Netzwerk für grafische Bedienung, Builds über die Befehlszeile und Automatisierung erreichbar ist.
Keine virtuelle Maschine
Geliefert wird ein dedizierter physischer Rechner, keine aus einem gemeinsam genutzten Host ausgeschnittene virtuelle Instanz.
VNC
Eine Möglichkeit, die macOS-Oberfläche remote anzuzeigen und zu bedienen; die Nutzung hängt von Auflösung, Bildänderungen und Netzwerkschwankungen ab.
self-hosted runner
Ein bei einer CI/CD-Plattform registrierter Ausführungsagent, der Pipeline-Aufgaben auf eigenen oder gemieteten Knoten übernimmt.
Build-Cache
Daten, die zur Vermeidung wiederholter Downloads oder Kompilierungen gespeichert werden, etwa Dependency-Caches und DerivedData; sie müssen verfallen und neu aufgebaut werden können.
Signatur-Assets
Zertifikate, private Schlüssel, Provisioning-Profile und Zugriffsrechte für die App-Signierung; sie sind nach dem Prinzip der geringsten Rechte zu verwalten.

Zu jeder Prüfung Befehl, erwartete Ausgabe und Fehlerpfad dokumentieren

Zuerst den ursprünglichen Exit-Code und den ersten relevanten Fehler sichern, erst danach reparieren. Viele Bereinigungsbefehle nacheinander können den Fehlerzustand zerstören und einen Abhängigkeitsfehler fälschlich als Knotenfehler erscheinen lassen.

Befehlsbasierte Checkliste häufiger Cloud-Mac-Fehler
Prüfobjekt Befehl oder Aktion Erwartetes Ergebnis Fehlerpfad
Netzwerkauflösung und Erreichbarkeit ping -c 20 host
ssh -v user@host
Adressauflösung konsistent; keine anhaltenden Paketverluste; SSH erreicht Handshake und Authentifizierung. Bei Auflösungsfehlern Adresse prüfen; bei Timeout vor dem Verbindungsaufbau lokale Verbindung wechseln und erneut testen; bei Authentifizierungsfehlern nur aktuellen Benutzernamen und Zugangsdaten prüfen.
Festplatte und Build-Speicher df -h
du -sh ~/Library/Developer/Xcode/DerivedData
Das Zielvolume bietet ausreichend Platz für Quellcode, Abhängigkeiten, Archive und Exportresultate; die Cache-Größe liegt innerhalb des Teamlimits. Zuerst aufzubewahrende Artefakte verschieben, dann wiederaufbaubare projektbezogene Caches löschen; Archivverzeichnisse unbekannter Herkunft nicht direkt entfernen.
Xcode-Toolchain xcode-select -p
xcodebuild -version
Entwicklerverzeichnis und Version stimmen mit der Pipeline-Dokumentation überein; der Befehl wird erfolgreich ausgeführt. Bei einem Pfadfehler die Toolchain explizit wechseln; bei abweichender Version Aufgabe stoppen, um nicht vergleichbare Archive zu erzeugen.
Projekt und Scheme xcodebuild -list -workspace App.xcworkspace Das Ziel-Scheme ist sichtbar und das für die Automatisierung verwendete Scheme ist freigegeben. Bei leerer Liste Arbeitsverzeichnis und Dependency-Generierung prüfen; bei fehlendem Scheme Freigabeeinstellungen und Groß-/Kleinschreibung kontrollieren.
Signaturidentität security find-identity -v -p codesigning Die für die Aufgabe benötigte Signaturidentität ist sichtbar; die Ausgabe enthält keine durch ungültige oder doppelte Auswahl verursachte Mehrdeutigkeit. Bei fehlender Identität Importbereich, Schlüsselbundzugriff und Zuordnung zum Provisioning-Profil prüfen; private Schlüssel und Passwörter nicht auf öffentlichen Seiten veröffentlichen.
Archiv und Export Aufbewahren: xcodebuild Exit-Code, Archivpfad und Export-Log. Das Archivverzeichnis ist vorhanden; Exportresultat, Commit-ID und Aufgabennummer sind einander zugeordnet. Mit dem ersten error im Log beginnen; Kompilierung, Signierung, Archivierung und Export getrennt bewerten und den gesamten Fehler nicht anhand der letzten Zeile zusammenfassen.
RULE 01

Immer nur eine Variable ändern

Nach einem Netzwerkwechsel die Display-Einstellungen unverändert lassen; nach einem Xcode-Wechsel den Quellcode-Commit unverändert lassen. Nur so sind Ergebnisse vergleichbar.

RULE 02

Den ersten relevanten Fehler aufbewahren

Spätere Fehler sind oft Folgefehler. Frühesten Fehlerabschnitt, Exit-Code und zugehörigen Befehl dokumentieren.

RULE 03

Logs vor dem Teilen bereinigen

Host-Zugangsdaten, Tokens, private Schlüssel und sensible Projektpfade entfernen, aber Zeit, Aufgabennummer und Toolversionen beibehalten.

Wenn die Ursache unklar bleibt, eine prüfbare Aufgabenaufzeichnung einreichen

Bestehende Nutzer melden sich vorzugsweise an und reichen über die Konsole ein Ticket ein; bei fehlendem Zugriff eine E-Mail an support@oakvm.com senden. In beiden Fällen keine Zugangsdaten auf öffentlichen Seiten einfügen.

SUPPORT PACKET Empfohlene 6 Angaben
01Knotenregion

Singapur, Japan (Tokio), Südkorea (Seoul), Hongkong, US-Ostküste oder US-Westküste.

02Zeitpunkt

Datum, Uhrzeit und Zeitzone angeben, damit die Knotenlogs abgeglichen werden können.

03Aufgabennummer

Eine identifizierbare Nummer aus Bestellung, Instanz oder CI-Aufgabe angeben.

04Reproduktionsschritte

Einstieg, Befehle und den letzten erfolgreichen Schritt vor dem Auftreten des Problems aufführen.

05Erwartet und tatsächlich

Erwartete und tatsächliche Ausgabe getrennt beschreiben, nicht nur „nicht nutzbar“ schreiben.

06Bereinigte Logs

Fehlerkontext, Exit-Code und Versionen aufbewahren; Zugangsdaten, Tokens und private Schlüssel entfernen.

Dedizierter physischer Rechner · keine virtuelle Maschine · Abrechnung in USD

Du brauchst einen Cloud Mac für deine bestehende Pipeline?

Wähle OakVM M4 oder OakVM M4 Pro und konfiguriere die Mietdauer in sechs verfügbaren Knotenregionen. Alle Regionen laufen 365 Tage im Jahr; die tatsächliche Verfügbarkeit liefert die Konsole in Echtzeit.