Prüfpfad für Entwickler

Problem zuerst eingrenzen, dann den Cloud-Mac schnell wiederherstellen.

Von der ersten SSH-Verbindung über die Xcode-Toolchain bis zu CI/CD-Runnern und Knotennetzwerken liefert diese Seite zuerst Prüfkommandos und anschließend die Entscheidungskriterien. Falls das Problem bestehen bleibt, senden Sie Bestellnummer, Knoten, Zeitpunkt und bereinigte Logs mit einem Support-Ticket ein.

Priorisierter Pfad
Erste Verbindung in 4 Schritten
Problemumfang
6 häufige Aufgaben
Support-Kontakt
E-Mail und Konsolen-Ticket
ONCEMAC SUPPORT BOARD Knoten-Checkliste
Prüfung kann beginnen
A1
Verbindungsdaten prüfen Hostadresse, Benutzername, Schlüsseldatei
Verbindung
B2
Toolchain prüfen Xcode, CLT-Pfad, Build-Logs
Build
C3
Laufzeitgrenzen prüfen Speicher, Netzwerk, Prozesse und Neustartprotokolle
Knoten
Entfernen Sie vor dem Senden Schlüssel, Zugriffstoken und die vollständige IP-Adresse.
Schnell finden

Antworten nach Aufgabe finden, ohne alles von Anfang an zu lesen.

Wählen Sie Verbindung, Xcode, CI/CD, Speicher, Netzwerk oder Verlängerung. Die Seite zeigt dann die passenden Einstiege. Sie können auch nach Kommandos, Symptomen oder Toolnamen suchen.

Derzeit werden alle 6 Hilfekategorien angezeigt.

Für den ersten Einsatz

Die erste SSH-Verbindung in vier Schritten herstellen.

Maßgeblich sind die Verbindungsdaten auf der Detailseite der Konsoleninstanz. Raten Sie die Hostadresse nicht anhand alter Tickets oder historischer Befehle. Nach einer erneuten Bereitstellung des Knotens müssen die aktuellen Daten erneut kopiert werden.

  1. 01

    Aktuelle Verbindungsdaten kopieren

    Öffnen Sie die Instanzdetails in der Konsole und kopieren Sie Hostadresse, SSH-Benutzername, Port und Schlüsseldaten. Prüfen Sie zuerst, ob Bestellung und Knoten übereinstimmen, und fügen Sie den Befehl anschließend in Ihr lokales Terminal ein.

  2. 02

    Privaten Schlüssel in einem kontrollierten Verzeichnis speichern

    Speichern Sie die Schlüsseldatei in einem lokal kontrollierten Benutzerverzeichnis. Legen Sie sie nicht in Git-Repositories, Build-Artefakte oder Team-Chats. Der Dateiname ist frei wählbar, der Pfad im späteren Befehl muss jedoch übereinstimmen.

  3. 03

    Lokale Dateiberechtigungen einschränken

    Führen Sie im lokalen macOS- oder Linux-Terminal aus chmod 600 ~/.ssh/oncemac_key. Wenn SSH zu weit gefasste Berechtigungen für den privaten Schlüssel meldet, korrigieren Sie diese zuerst. Umgehen Sie die Prüfung nicht durch Deaktivieren der Sicherheitskontrollen.

  4. 04

    Verbindung herstellen und Knotenidentität prüfen

    Führen Sie den von der Konsole bereitgestellten SSH-Befehl aus. Prüfen Sie bei der ersten Verbindung die Quelle des Host-Fingerabdrucks. Führen Sie nach dem Anmelden auf dem Knoten hostname,sw_vers und whoamiaus, um Host, System und aktuellen Benutzer zu bestätigen.

Reihenfolge der Befehlsausführung

Verbindung und Version zuerst prüfen, erst danach den vollständigen Build starten.

Ändern Sie pro Diagnose nur eine Variable. Prüfen Sie zuerst eine stabile SSH-Sitzung, lesen Sie dann die Xcode-Version aus und führen Sie zuletzt den Build mit Ergebnis-Bundle und Logs aus. So lassen sich Verbindungs-, Toolchain- und Projektprobleme unterscheiden.

  • VerbindungsebeneNach erfolgreicher SSH-Verbindung Knotennamen und aktuellen Benutzer notieren.
  • Toolchain-EbeneAktiv verwendetes Xcode und Entwicklerverzeichnis prüfen.
  • Projektebenescheme, destination, Exit-Code und Logs aufbewahren.
  • AutomatisierungsebeneFür das Ticket nur bereinigte fastlane-Ausgaben verwenden.
once-node / build-diagnostics
SSH
$ ssh -i ~/.ssh/oncemac_key user@host
Last login: current session
connected: once-node

$ xcodebuild -version
Xcode 16.x
Build version 16x

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

$ set -o pipefail
$ xcodebuild \
  -workspace App.xcworkspace \
  -scheme App \
  -destination 'generic/platform=iOS' \
  -resultBundlePath ./BuildResults.xcresult \
  build | tee build.log

** BUILD SUCCEEDED **

$ bundle exec fastlane ios build
[fastlane] resolving dependencies
[fastlane] archive completed
[fastlane] lane finished successfully
Toolchain prüfen

Xcode-Probleme in Version, Pfad, Signierung und Logs aufteilen.

„Lokal funktioniert der Build, auf dem Knoten nicht“ reicht meist nicht zur Ursachenanalyse. Vergleichen Sie denselben Commit, Lock-Dateien, scheme, destination und Umgebungsvariablen sowie die Ausgaben beider Seiten.

XC-01

Xcode-Version prüfen

Führen Sie xcodebuild -versionaus und notieren Sie Hauptversion und Build version. Ist die Pipeline von einer bestimmten Version abhängig, geben Sie die Version am Aufgabenbeginn aus – nicht nur bei der Ersteinrichtung.

xcodebuild -version
xcrun --find simctl
swift --version
XC-02

Entwicklerverzeichnis prüfen

Führen Sie xcode-select -p aus, um den aktuellen Pfad der Command Line Tools zu prüfen. Bei mehreren Xcode-Versionen muss die Ausführungsumgebung DEVELOPER_DIRexplizit setzen, damit interaktive Sitzung und Automatisierungsaufgabe nicht unterschiedliche Pfade verwenden.

xcode-select -p
echo "$DEVELOPER_DIR"
xcrun --sdk iphoneos --show-sdk-path
XC-03

Signierumgebung prüfen

Prüfen Sie zunächst, ob der Schlüsselbund erreichbar ist und Zertifikatsname sowie Provisioning-Profile-Bedingungen übereinstimmen. Kontrollieren Sie anschließend Team, Bundle Identifier und Signiermethode des Projekts. Für Tickets genügen bereinigte Fehlerabschnitte; fügen Sie keine Zertifikate, privaten Schlüssel oder Passwörter bei.

security list-keychains
security find-identity -v -p codesigning
xcodebuild -showBuildSettings
XC-04

Nachvollziehbare Logs exportieren

Mit set -o pipefail den echten Exit-Status erhalten und zugleich mit tee in ein Log schreiben. Bei komplexen Fehlern empfiehlt sich ein .xcresult-Bundle. Entfernen Sie vor dem Teilen Benutzernamen, Pfade, Token und Geschäftsdaten.

set -o pipefail
xcodebuild build | tee build.log
echo "${PIPESTATUS[0]}"
Automatisierungs-Runner

Vor der CI/CD-Anbindung Ausführungsidentität und Arbeitsverzeichnis festlegen.

OnceMac bietet dedizierte physische Knoten und eine vollständige macOS-Kommandozeilenumgebung. Plattformfunktionen, Plugin-Kompatibilität und Aufgabendefinitionen sollten Teams unter ihren eigenen Repository- und Versionsbedingungen prüfen.

RUNNER / 01

Selbst gehosteter GitHub-Actions-Runner

  • Prüfen Sie, ob der macOS-Benutzer des Runner-Dienstes mit dem Benutzer des manuellen SSH-Tests übereinstimmt.
  • Prüfen Sie die Registrierung auf Repository-, Organisations- oder Unternehmensebene, damit Aufgaben nicht dem falschen Label zugewiesen werden.
  • Vergeben Sie für den Knoten ein eindeutiges Label und verwenden Sie im Workflow ausdrücklich die passende runs-on Bedingung.
  • Stellen Sie sicher, dass die nicht-interaktive Shell auf benötigtes PATH, Ruby, Homebrew und Xcode zugreifen kann.
  • Prüfen Sie vor parallelen Aufgaben DerivedData, Paketmanager-Cache und freien Speicher.
RUNNER / 02

GitLab Runner

  • Prüfen Sie Executor-Typ, Runner-Labels, Regeln für geschützte Branches und Aufgabenbedingungen.
  • Prüfen Sie Benutzer, HOME und Schlüsselbundkontext des LaunchAgent oder Dienstprozesses.
  • Geben Sie am Aufgabenbeginn whoami,pwd, Xcode-Version und freien Speicher aus.
  • Der Cache-Schlüssel sollte Lock-Dateien oder Toolchain-Versionen enthalten, damit inkompatible Caches nicht wiederverwendet werden.
  • Bei Fehlern Job-Logs, Exit-Code und Status des Runner-Dienstes gemeinsam aufbewahren.
RUNNER / 03

Jenkins-Knoten

  • Prüfen Sie, ob Agent-Start, Arbeitsverzeichnis und Knoten-Labels den Pipeline-Bedingungen entsprechen.
  • Prüfen Sie, ob der Jenkins-Ausführungsbenutzer auf Repository, Build-Verzeichnis und benötigten Schlüsselbund zugreifen kann.
  • Xcode-Auswahl, Abhängigkeitsinstallation und Build-Befehle in eine prüfbare Pipeline aufnehmen.
  • Die Zahl paralleler Executor auf demselben physischen Knoten begrenzen, um Speicher- und CPU-Konkurrenz zu vermeiden.
  • Vor der Archivierung Workspace-Größe, Pfad der Build-Ergebnisse und Bereinigungsstrategie dokumentieren.
Reproduzierbare Migration

Dateien migrieren, keine nicht prüfbare Altumgebung kopieren.

Bauen Sie die Toolchain bevorzugt aus Git, Lock-Dateien und Brewfile neu auf und migrieren Sie nur benötigte Arbeitsverzeichnisse und Caches. Das Kopieren der gesamten alten Benutzerumgebung übernimmt veraltete Konfigurationen, absolute Pfade und sensible Zugangsdaten.

MIGRATION MANIFEST Migrations-Checkliste
Quellcode Git klonen und Commit-Hash prüfen Keine alten Arbeitsbäume mit nicht committeten Geheimnissen kopieren
Systemtools Deklarative Wiederherstellung per Brewfile Nach der Wiederherstellung Versionen und PATH erneut prüfen
Projektdateien Inkrementelle Übertragung mit rsync Caches, Logs und Zugangsdatenverzeichnisse ausdrücklich ausschließen
Build-Cache Nach Toolchain-Version selektiv migrieren Bei Versionsänderungen bevorzugt neu erzeugen

Arbeitsverzeichnis mit rsync migrieren

Prüfen Sie zunächst im Dry-Run, welche Inhalte kopiert und gelöscht werden. Löschvorgänge im Zielpfad müssen vom Ausführenden bestätigt werden.

rsync -avhn \
  --exclude '.git' \
  --exclude 'DerivedData' \
  ./Project/ user@host:~/Project/

Codezustand mit Git fixieren

Notieren Sie auf dem Quellknoten Branch, Commit-Hash und nicht committete Änderungen. Prüfen Sie nach dem Klonen auf dem neuen Knoten den Hash und stellen Sie erst danach Abhängigkeiten wieder her. Verwenden Sie keine Archive als Ersatz für Versionsdaten.

git status --short
git rev-parse HEAD
git clone repository-url
git checkout commit-hash

Tools mit Brewfile neu erstellen

Prüfen Sie die Liste vor dem Export und entfernen Sie nicht mehr benötigte Software. Verifizieren Sie nach der Wiederherstellung jede Kommandozeilenversion; ein erfolgreicher Installationsbefehl beweist keine funktionsfähige Umgebung.

brew bundle dump --file Brewfile
brew bundle check --file Brewfile
brew bundle install --file Brewfile
Sensible Zugangsdaten vor der Migration separat prüfen

SSH-Private-Keys, Repository-Token, Signiermaterial, Umgebungsdateien und Dienstschlüssel dürfen nicht mit dem Projektverzeichnis kopiert werden. Konfigurieren Sie sie nach Prüfung der geringsten erforderlichen Berechtigungen über den vom Team freigegebenen sicheren Prozess neu.

Kürzester Fehlerpfad

Zuerst überprüfbare Bedingungen ausschließen, dann vollständigen Kontext senden.

Bearbeiten Sie alle fünf Problemarten in dieser Reihenfolge: Symptom bestätigen, minimales Kommando ausführen, Ergebnis dokumentieren, unwirksame Änderungen stoppen. Öffnen Sie den jeweiligen Punkt für die Checkliste.

Keine Verbindung SSH-Timeout, Verbindungsabweisung oder fehlgeschlagene Schlüssel-Authentifizierung
  1. Hostadresse, Port und Benutzername erneut aus den aktuellen Instanzdetails kopieren und sicherstellen, dass keine alten Bestelldaten verwendet werden.
  2. Führen Sie chmod 600 aus, um die lokalen Berechtigungen des privaten Schlüssels zu prüfen, und stellen Sie sicher, dass der im Befehl angegebene Schlüsselpfad vorhanden ist.
  3. Verwenden Sie ssh -vvv für die Verbindungsphase. Entfernen Sie vor dem Ticket persönliche Daten aus vollständiger Adresse, Benutzername und Schlüsselpfad.
  4. Erneut über ein anderes vertrauenswürdiges Netzwerk testen, um lokale Ausgangsbeschränkungen von Knotenproblemen zu unterscheiden.
  5. Ticket mit Bestellnummer, Knoten, Zeitpunkt, Fehlertyp und bereinigtem Ende der Debug-Ausgabe versehen.
Build fehlgeschlagen Abbruch bei xcodebuild, Abhängigkeitsauflösung oder Signierung
  1. Commit-Hash, scheme, destination, Xcode-Version und Entwicklerverzeichnis dokumentieren.
  2. Fehler bei Abhängigkeitsauflösung, Kompilierung, Tests, Signierung und Archivierung klar unterscheiden.
  3. Verwenden Sie set -o pipefail für den echten Exit-Code und exportieren Sie .xcresult oder vollständige Logs.
  4. Nicht gleichzeitig Abhängigkeiten aktualisieren, Xcode wechseln und alle Caches löschen; pro Durchlauf nur eine Variable ändern.
  5. Dem Ticket Logs vor und nach dem ersten entscheidenden Fehler beilegen; Repository-Token, Signiermaterial und Geschäftsdaten entfernen.
Speicherplatz knapp Build-Abbruch, fehlgeschlagene Archivierung oder stetig wachsendes Arbeitsverzeichnis
  1. Führen Sie df -h aus, um freien Speicher des Volumes zu prüfen, und verwenden Sie anschließend du -sh zur Lokalisierung von Workspace, DerivedData, Archiven und Abhängigkeits-Caches.
  2. Prüfen Sie, ob Logs, Testergebnisse und ältere Artefakte klare Aufbewahrungsfristen haben, statt das gesamte Benutzerverzeichnis zu löschen.
  3. Sichern Sie vor der Bereinigung noch benötigte Build-Artefakte und stellen Sie sicher, dass kein laufender Prozess die betreffenden Verzeichnisse verwendet.
  4. Übersteigt der langfristige Speicherbedarf die Basis-SSD, prüfen Sie die Zusatzoptionen +1TB SSD oder +2TB SSD.
  5. Ticket mit Speicherübersicht, wachsenden Verzeichnissen und Zeitpunkt der fehlgeschlagenen Aufgabe versehen; keine Projektquelltexte hochladen.
Netzwerkschwankungen Stockendes SSH, fehlgeschlagener Abhängigkeitsdownload oder instabile Repository-Verbindung
  1. Phänomene auf den Strecken lokal–Knoten und Knoten–Repository bzw. Abhängigkeitsquelle getrennt dokumentieren; beide Verbindungen nicht zu einer Schlussfolgerung vermischen.
  2. Bei fortlaufenden Messungen Testort, Anbieter, Knoten, Kommando und Anzahl der Stichproben notieren; ein einzelner Ping beschreibt keine dauerhafte Erfahrung.
  3. DNS-Auflösung, Proxy-Umgebungsvariablen, Git-Remote und Paketquellen auf Übereinstimmung mit der Teamkonfiguration prüfen.
  4. Zum Vergleich ein anderes vertrauenswürdiges lokales Netzwerk verwenden, damit lokales WLAN oder Ausgangsrichtlinien nicht fälschlich als Knotenfehler gelten.
  5. Ticket mit Zeitraum, Zieltyp, Fehlerquote und bereinigter Ausgabe versehen.
Knoten neu gestartet Sitzungsabbruch, Dienst nicht wiederhergestellt oder Runner offline
  1. Zuerst den aktuellen Knotenstatus in der Konsole prüfen und nicht wiederholt Stromaktionen senden.
  2. Nach Wiederherstellung der Verbindung uptimeausführen und Startzeit mit dem Zeitpunkt des Problems abgleichen.
  3. Startmethode und aktuellen Dienststatus von selbst gehostetem Runner, GitLab Runner oder Jenkins-Agent prüfen.
  4. Vollständigkeit des Build-Workspace bestätigen und Artefakte unvollständiger Aufgaben erneut prüfen; Archive mit unklarem Status nicht weiterverwenden.
  5. Ticket mit Bestellnummer, Knoten, Zeitpunkt, Symptomen vor und nach dem Neustart sowie den wiederherzustellenden Diensten versehen.
Persönlicher Support

Einmalig genügend Informationen senden und Rückfragen reduzieren.

Fragen zu bestehenden Bestellungen, Knotenstatus und Verlängerungen bitte bevorzugt als Konsolen-Ticket senden. Konfigurations- und Nutzungsfragen vor der Bestellung können per E-Mail gestellt werden. Die einzige Kontaktadresse ist support@oncemac.com.

SUPPORT PACKET Ticket-Informationspaket
01

Bestellung und Knoten

Bestellnummer, Konfigurationsname und Knotenregion angeben; keine Zahlungsnachweise oder vollständigen Abrechnungsdaten senden.

02

Zeitpunkt

Zeitzone, Zeitpunkt des ersten Auftretens, letzte Reproduktion und Dauer des Problems angeben.

03

Reproduktionsschritte

Befehle, erwartetes Ergebnis, tatsächliches Ergebnis und Exit-Code auflisten – nicht nur „funktioniert nicht“ schreiben.

04

Bereinigte Logs

Fehlerkontext beibehalten, Schlüssel, Token, Passwörter, vollständige IP-Adressen, Signiermaterial und Geschäftsdaten entfernen.

05

Bereits durchgeführte Prüfungen

Geprüfte Netzwerke, Versionen, Pfade, Speicher- und Wiederholungsergebnisse nennen, damit unwirksame Schritte nicht wiederholt werden.

Bestehende Bestellung

Ticket über die Konsole senden

Geeignet für Knotenverbindung, Build-Fehler, Abrechnung, Verlängerung und Bestellstatus. Das Ticket wird dem angemeldeten Konto zugeordnet, damit der Instanzkontext geprüft werden kann.

Konsole öffnen
Vor dem Kauf und allgemeine Fragen

Strukturierte E-Mail senden

Bitte Zweck, Zielknoten, Xcode-Version, Anzahl paralleler Builds, Speicherbedarf und gewünschten Aktivierungszeitpunkt angeben.

support@oncemac.com
Dedizierter physischer Mac-mini-Knoten

Neuen Knoten benötigt? Konfiguration und Laufzeit direkt auswählen.

OnceMac bietet 3 verfügbare Konfigurationen und 6 Knoten, die 365 Tage im Jahr durchgehend betrieben werden. Alle Bestellungen werden in US-Dollar abgerechnet; Bestellungen, Knoten und Tickets lassen sich zentral in der Konsole verwalten.