Support für Entwicklung und Verbindung

Remote-Mac-Zugriff, Builds und Fehlerdiagnose im Griff

Von den Zugangsdaten bis zu Xcode, Signierung und Continuous Integration: Finde die passenden Schritte für deine Aufgabe. Jeder Check liefert ein überprüfbares Ergebnis und hilft dir, bei Problemen eine reproduzierbare Diagnose zu erstellen.

Physischer Apple-Silicon-Knoten: Deine Bestellung umfasst ein exklusiv zugewiesenes Gerät, keine virtuelle Maschine. Prüfe vor der ersten Verbindung Knoten, Systemversion und Zugangsart.

ÜBERGABE DER REMOTE-SITZUNG Übergabeübersicht für die Remotesitzung
SITZUNG / 05
Gerätezuordnung
Ein exklusiv zugewiesener physischer Rechner pro Bestellung
Zugangsart
Grafische Oberfläche und SSH
Systemversion
Nach der ersten Verbindung sofort prüfen
Zeitzone der Sitzung
Nach Knoten- und Teamprozess festlegen
Bereitstellungsphase 01–05
  1. 01Bestellung und Knoten bestätigenModell, Region und Laufzeit prüfen
  2. 02Zugangsdaten abrufenNur sicher im Portal anzeigen
  3. 03Remotesitzung herstellenZuerst grafische Oberfläche und SSH prüfen
  4. 04Entwicklungstools konfigurierenXcode- und Abhängigkeitsversionen dokumentieren
  5. 05Automatisierte Aufgaben anbindenArbeitsverzeichnisse und Caches trennen
Supportumfang Verbindung, Toolchain, CI/CD, System und Bestellung
Verfügbare Knoten 5
Betriebsstatus 365 Tage im Jahr normal in Betrieb
Dynamische Informationen Maßgeblich ist die Echtzeitanzeige im Portal
Anleitung für Remote-Verbindungen

Zuerst die Verbindung prüfen, dann Entwicklungsabhängigkeiten installieren

Beim ersten Zugriff geht es nicht darum, sofort alle Projekte zu migrieren. Prüfe zunächst, ob Zugangsdaten, Netzwerk, grafische Sitzung und SSH stabil funktionieren. Starte keine langen Builds, bevor die grundlegende Verbindung bestätigt ist.

  1. 01

    Zugangsdaten im Portal abrufen

    Bestellkennung, Knoten, Gerätename und Zugangsart prüfen. Zugangsdaten ausschließlich in einem kontrollierten Passwortmanager speichern und nicht über Gruppenchats oder öffentliche Dokumente weitergeben.

  2. 02

    Vor der Verbindung prüfen

    Sicherstellen, dass das lokale Netzwerk die benötigten Ports nicht blockiert. Temporäre Proxys deaktivieren, die Routen ändern könnten, und aktuellen öffentlichen Ausgang sowie Testzeit dokumentieren. Zuerst über ein stabiles kabelgebundenes Netzwerk testen, danach die WLAN-Leistung vergleichen.

  3. 03

    Auflösung und Zwischenablage abstimmen

    Zunächst eine Auflösung verwenden, die dem lokalen Monitor nahekommt, und Lesbarkeit, Tastenbelegung sowie bidirektionale Zwischenablage prüfen. Hohe Auflösungen erhöhen bei schwachem Netzwerk die Belastung durch Bildschirmaktualisierungen; Stabilität bei der Interaktion hat Vorrang.

  4. 04

    Wiederverbindung nach Abbruch testen

    Eine Sitzung absichtlich trennen und erneut verbinden. Prüfen, ob laufende Befehle weiterlaufen und die grafische Sitzung auf dem ursprünglichen Desktop wiederhergestellt wird. Lange Aufgaben am besten in einer persistenten Terminsitzung oder einem CI/CD-Job ausführen.

  5. 05

    Grenzen des Remote-Zugriffs absichern

    Zugriffsrechte nur an erforderliche Mitglieder vergeben und Zugangsdaten bei Teamänderungen sofort aktualisieren. Private Schlüssel, vollständige Passwörter und Codes zur Fernsteuerungsbestätigung niemals in Skripten, Repositories, Build-Logs oder Screenshots speichern.

Aufzeichnung der Befehlsausführung

Drei Ergebnisse bestätigen die Build-Fähigkeit des Knotens

Zuerst die SSH-Sitzung bestätigen, dann einen Xcode-Build ausführen und zuletzt das Automatisierungstool für die Paketierung prüfen. Die Beispiele zeigen nur den Prüfpfad; Projektname, Scheme, Workspace und Exportparameter müssen durch die Teamkonfiguration ersetzt werden.

  • SSH: Verbindung mit dem der Bestellung zugeordneten Gerät bestätigen und Systemversion dokumentieren.
  • xcodebuild:Workspace, Scheme und Configuration explizit angeben.
  • fastlane:Zuerst eine schreibgeschützte Prüfung ausführen, danach die tatsächliche Packaging-Lane starten.
build-session / assigned-node UTF-8 · zsh
$ ssh developer@assigned-mac
connection established
$ sw_vers -productVersion
current macOS version returned
$ xcodebuild -workspace App.xcworkspace \
  -scheme App -configuration Release build
Resolve Package Graph
CompileSwiftSources normal arm64
** BUILD SUCCEEDED **
$ bundle exec fastlane ios verify_build
Checking signing assets
Archive validation passed
fastlane finished successfully
Xcode und Signierung

Versionen, Zertifikate und Berechtigungen getrennt prüfen

Die meisten Signierungsfehler werden nicht durch einen einzelnen Schalter verursacht. Zuerst Toolversionen festlegen, dann die Übereinstimmung von Zertifikaten und Provisioning-Profilen prüfen und abschließend sicherstellen, dass der Automatisierungsprozess auf die benötigten Keychain-Einträge zugreifen kann.

A

Xcode-Auswahlpfad bestätigen

Xcode-Version der grafischen Oberfläche und Pfad der Kommandozeilentools gemeinsam dokumentieren. Bei mehreren Versionen muss das Build-Skript die Auswahl explizit treffen, damit Sitzung und Runner nicht unterschiedliche Toolchains verwenden.

$ xcodebuild -version
$ xcode-select -p
$ xcrun --find swift
B

Zertifikate und Provisioning-Profile importieren

Zertifikate, private Schlüssel und Provisioning-Profile müssen zum selben Signierungsprozess gehören. Nach dem Import zunächst Gültigkeit, Teaminformationen und Bundle Identifier prüfen; ein offizieller Build sollte nicht der erste Test sein.

  • Zertifikat und privater Schlüssel liegen als Paar vor
  • Provisioning-Profil deckt den Bundle Identifier ab
  • Build-Konfiguration verweist auf das richtige Team
C

Keychain-Berechtigungen prüfen

Was in der grafischen Sitzung funktioniert, ist nicht automatisch für den Automatisierungsprozess verfügbar. Unter dem Runner-Benutzer und in einer nicht interaktiven Umgebung Entsperrverfahren, Suchliste und Berechtigungen für den Code-Signaturzugriff prüfen.

  • Ausführungsbenutzer muss übereinstimmen
  • Sichtbarkeit der Entsperrdaten beschränken
  • Keine vertraulichen Werte in Build-Logs schreiben
D

Fehler bei der automatischen Signierung eingrenzen

Fehlgeschlagenen Befehl, Zielnamen, Configuration, Exportmethode und erste Fehlerzeile aufbewahren. Nicht nur die letzte allgemeine Fehlermeldung einreichen – sie enthält meist nicht die eigentliche Ursache.

  • Zuerst den ersten Signierungsfehler prüfen
  • Umgebungsvariablen von lokalem System und Runner vergleichen
  • Problem mit einem Minimalziel reproduzieren
Reihenfolge der Kompatibilitätsprüfung vor Toolchain-Änderungen
Prüfobjekt Zu dokumentieren Erfolgskriterium Nächster Schritt bei Fehlern
macOS Aktuelle Version, verfügbarer Speicherplatz Ziel-Xcode wird eindeutig unterstützt Änderung stoppen und Kompatibilitätsmatrix prüfen
Xcode Version, Auswahlpfad, SDK Kommandozeile und grafische Oberfläche stimmen überein Toolpfad korrigieren und Minimal-Build erneut ausführen
Signierungsmaterial Zertifikatsstatus, Provisioning-Profil, Team Bundle Identifier und Exportmethode stimmen überein Erneut importieren und Keychain-Berechtigungen prüfen
Projektabhängigkeiten Lock-Datei, Laufzeit, Plugin-Versionen Installation in sauberem Verzeichnis ist reproduzierbar Lokalen Cache bereinigen und Fehler-Logs aufbewahren
Self-hosted Runner

Automatisierte Aufgaben isoliert, bereinigbar und reproduzierbar ausführen

Der Runner sollte nicht direkt das tägliche Entwicklungsverzeichnis wiederverwenden. Trenne Repository, Abhängigkeits-Cache, Build-Artefakte und temporäre Dateien, damit ein fehlgeschlagener Job den nächsten Build nicht beeinträchtigt.

GITHUB ACTIONS Runner auf Repository- oder Organisationsebene

Zuerst mit einem Repository testen, dann den Aufgabenbereich erweitern

  1. Registrierung:Kurzlebige Registrierungsdaten im zuständigen Repository oder in der Organisation erzeugen und die Runner-Konfiguration auf dem Zielgerät abschließen.
  2. Labels:Labels verwenden, die Chip, Zweck und Toolchain beschreiben, damit Jobs nicht an die falsche Umgebung verteilt werden.
  3. Dienst:Mit einem festen Benutzer ohne erhöhte Rechte ausführen und prüfen, ob der Runner nach einem Neustart wieder Jobs annimmt.
  4. Validierung:Zuerst Versionsprüfung und Minimal-Build ausführen, danach Archivierungs-, Test- und Release-Aufgaben anbinden.
GITLAB RUNNER Runner auf Projekt- oder Gruppenebene

Aufgabenquellen mit Labels und Ausführungsgrenzen kontrollieren

  1. Registrierung:Runner-Zuordnung zu Projekt oder Gruppe bestätigen und Registrierungsdaten nicht im Skript-Repository speichern.
  2. Executor:Je nach Build-Methode den lokalen Ausführungspfad wählen und die zulässigen Aufgabentypen beschränken.
  3. Labels:Explizite Übereinstimmung mit Labels verlangen, damit nicht geprüfte Aufgaben nicht in die Signierungsumgebung gelangen.
  4. Audit:Job-ID, Commit-Version und fehlgeschlagene Phase aufbewahren, damit das Supportteam das Problem reproduzieren kann.
WORK Arbeitsverzeichnis

Jedes Repository separat halten, temporäre Dateien nach Abschluss des Jobs entfernen und keine Checkout-Verzeichnisse unbekannter Herkunft wiederverwenden.

CACHE Abhängigkeits-Cache

Cache-Schlüssel anhand von Lock-Datei oder Toolversion erzeugen; bei Versionsänderungen gezielt invalidieren statt bedingungslos alles wiederzuverwenden.

OUTPUT Build-Artefakte

Artefakte getrennt vom Quellcode speichern und lokale Kopien nach erfolgreichem Upload gemäß Teamrichtlinie bereinigen.

SECRETS Vertrauliche Variablen

Plattformbasierten Secret-Mechanismus zur Injektion verwenden und Logausgaben begrenzen; nichts in Projektdateien, Cache oder Archiven speichern.

Systemupgrade-Strategie

Upgrades planst du selbst – dokumentiere vorher den rückverfolgbaren Umgebungsstatus

VMOwn-Knoten sind 365 Tage im Jahr normal in Betrieb. Systemupgrades sind aktive Änderungen durch den Nutzer. Wähle einen Zeitraum ohne Auswirkungen auf Releases und Builds und prüfe vorher die Kompatibilität der Toolchain.

Status vor dem Upgrade dokumentieren

System und Hardware
macOS-Version, Chip, Unified Memory, verfügbarer Speicherplatz
Entwicklungstools
Xcode, Kommandozeilentools, SDK- und Laufzeitversionen
Projektabhängigkeiten
Lock-Dateien der Paketmanager, Ruby-, Python- und Node-Umgebung
Signierungskonfiguration
Zertifikatsstatus, Provisioning-Profile, Keychain-Suchliste
Automatisierte Aufgaben
Runner-Status, Labels, Arbeitsverzeichnis, zuletzt erfolgreicher Job
Wiederherstellungsunterlagen
Code-Backup, Konfigurationsexport, wichtige Logs, Bestellkennung
Vor der Änderung

Zuerst eine Referenzpipeline ausführen

Vor dem Upgrade einen reproduzierbaren Build, Test und Archivierungslauf abschließen und Commit-Version sowie Ergebnis dokumentieren. Nach dem Upgrade mit denselben Eingaben erneut ausführen – nur so lassen sich Abweichungen sinnvoll eingrenzen.

Diagnoseinformationen vorbereiten
Änderung fehlgeschlagen

Weitere Änderungen stoppen und den aktuellen Zustand bewahren

Letzten erfolgreichen und ersten fehlgeschlagenen Schritt dokumentieren; nicht wiederholt den gesamten Cache löschen. Toolversionen, Fehler-Logs und Reproduktionsbefehl zusammenstellen und als Ticket einreichen.

Ticket im Portal einreichen
Diagnose-Checkliste

Das Supportteam soll das Problem unter denselben Bedingungen reproduzieren können

„Verbindung fehlgeschlagen“ oder „Build-Fehler“ reicht für die Analyse nicht aus. Bitte Kontext, exakten Zeitpunkt, ersten Fehler und minimale Reproduktionsschritte angeben und vertrauliche Inhalte aus den Logs entfernen.

Prüfliste für Ticketanhänge 6 ERFORDERLICHE ANGABEN
01

Knoten- und Bestellkennung

Den tatsächlich verwendeten Knoten aus Singapur, Japan (Tokio), Südkorea (Seoul), Hongkong oder dem Westen der USA sowie die Bestellkennung aus dem Portal angeben.

02

System- und Toolversionen

Versionen von macOS, Xcode, Kommandozeilentools und direkt relevanten Abhängigkeiten dokumentieren; eine vollständige Softwareliste des Geräts ist nicht nötig.

03

Zeitpunkt und Zeitzone

Zeitpunkt, Dauer und Zeitzone des Problems angeben. Bei Verbindungsproblemen außerdem Standort und Typ des lokalen Netzwerks nennen.

04

Erster aussagekräftiger Fehler

Den erforderlichen Kontext vor und nach dem Fehler bewahren und bevorzugt die erste Fehlermeldung einreichen – nicht nur den letzten Exit-Status.

05

Minimale Reproduktionsschritte

Mit einem bekannten funktionierenden Zustand beginnen und Befehle, Oberflächenaktionen, Eingaben und tatsächliche Ergebnisse der Reihe nach aufführen.

06

Bereits getestete Maßnahmen

Angeben, ob die Verbindung erneut hergestellt, ein Job neu gestartet, das Netzwerk gewechselt, ein lokaler Cache bereinigt oder eine Konfiguration zurückgesetzt wurde, damit der Zustand nicht durch Wiederholungen verändert wird.

Noch nicht gelöst

Diagnoseaufzeichnung beilegen, damit der Support beim ersten Fehler ansetzen kann

Fragen vor dem Kauf und allgemeine technische Fragen kannst du an support@vmown.com richten. Bei bestehenden Bestellungen bitte bevorzugt im Portal ein Ticket einreichen, damit Gerät, Knoten und Bestellung zugeordnet werden können.