Start und Bereitstellung
Wo Sie nach der Zahlung den Fortschritt sehen, Zugangsdaten finden und Status sowie Verbindungsdaten prüfen.
Bereitstellungsablauf prüfenPrüfen Sie die Bestellung für die Bereitstellung, den Port für die Verbindung und die Protokolle für den Build. Suchen Sie nach einem Stichwort, um direkt umsetzbare Prüfschritte zu finden.
Geben Sie ein Stichwort ein, um passende Einträge zu sehen. Drücken Sie nach der Suche die Eingabetaste, um zur ersten Antwort zu springen.
Wenn ein Problem mit einer bestehenden Maschine auftritt, ergänzen Sie die Angaben im selben Ticket. So kann die Fehlersuche nahtlos weitergehen.
Die vier Problemkategorien werden getrennt behandelt. Prüfen Sie zuerst, ob die Maschine erreichbar ist, und dann Toolchain und Signierung. So verwechseln Sie Netzwerkprobleme nicht mit Build-Fehlern.
Wo Sie nach der Zahlung den Fortschritt sehen, Zugangsdaten finden und Status sowie Verbindungsdaten prüfen.
Bereitstellungsablauf prüfenPrüfen Sie SSH-Timeouts, abgelehnte öffentliche Schlüssel und Probleme mit dem Desktopzugriff jeweils gezielt.
Verbindungsfehler findenVon Archivprotokollen bis zur Zuordnung von Provisioning Profiles: Unterscheiden Sie zuerst zwischen Kompilieren, Archivieren und Exportieren.
Build und Signierung prüfenPrüfen Sie die Listenpreise pro Tag, Woche, Monat oder Quartal sowie Verlängerungsmöglichkeiten und Zahlungsstatus.
Abrechnungsregeln prüfenZahlung, Bestellbearbeitung und Maschinenbereitstellung sind getrennte Schritte. Prüfen Sie nach der Zahlung zuerst die Bestellung. Die Zahlungsseite allein bestätigt nicht, dass die Maschine bereits erreichbar ist.
Prüfen Sie in der Konsole Bestellnummer, Modell, Laufzeit und Zahlungsstatus. Eine veranlasste Blockchain-Überweisung oder Kartenzahlung bedeutet nicht, dass der Bestellstatus bereits aktualisiert wurde.
Öffnen Sie die zugehörige Bestellung oder Instanz und prüfen Sie den aktuellen Bearbeitungsstand. Die Konsole zeigt die voraussichtliche Bereitstellungszeit und den tatsächlichen Verfügbarkeitsstatus in Echtzeit an.
Nach der Bereitstellung finden Sie in den Instanzdetails Hostadresse, Benutzernamen, SSH-Port und Angaben zur ersten Anmeldung. Verwenden Sie die angezeigten Daten dieser Instanz und nicht die Parameter einer anderen Bestellung.
Prüfen Sie zuerst, ob Sie die Bestellung zur aktuellen Zahlung ansehen, und kontrollieren Sie dann den Zahlungsstatus in der Konsole. Wenn die Zahlung bestätigt ist, die Instanz aber noch bearbeitet wird, nennen Sie im Ticket Bestellnummer, Zahlungsmethode, Zahlungsreferenz und aktuellen Status. So kann der Support den Bereitstellungsschritt überprüfen.
Bewahren Sie bei Zahlungen mit USDT-TRC20 den Transaktions-Hash und bei Kartenzahlungen die Zahlungsreferenz auf. Senden Sie weder die vollständige Kartennummer noch den Sicherheitscode oder Ihr Konsolenpasswort. Erstellen Sie für dieselbe Zahlung keine wiederholten Bestellungen.
Verbindungs-Timeout:Prüfen Sie zuerst, ob die Instanz bereitgestellt und erreichbar ist. Kontrollieren Sie dann Hostadresse und Port Zeichen für Zeichen sowie Ihr lokales Netzwerk, Proxy und die Zugriffsregeln. Ein Timeout tritt vor der Authentifizierung auf; einen öffentlichen Schlüssel wiederholt auszutauschen, behebt in der Regel kein Problem mit dem Netzwerkpfad.
Permission denied (publickey):Prüfen Sie, ob Benutzername, verwendeter privater Schlüssel und in der Konsole hinterlegter öffentlicher Schlüssel zusammenpassen. Hochgeladen wird der Inhalt der Datei mit dem öffentlichen Schlüssel. Der private Schlüssel bleibt lokal und wird nicht an den Support weitergegeben. Ersetzen Sie HOST, PORT und USER unten durch die tatsächlichen Werte aus den Instanzdetails.
ssh -vv -o IdentitiesOnly=yes \
-i ~/.ssh/id_ed25519 \
-p PORT USER@HOST
Entfernen Sie vor dem Senden von Diagnoseausgaben sensible Angaben wie Hostadressen und lokale Pfade. Lassen Sie Fehlertyp und Authentifizierungsphase stehen. Wenn sich der Host-Fingerprint geändert hat, prüfen Sie zuerst, ob das System kürzlich neu installiert wurde. Überspringen Sie die Fingerprint-Prüfung nicht einfach.
Prüfen Sie zuerst die Desktop-Verbindungsdaten in den Instanzdetails und vergewissern Sie sich, dass Sie dieselbe Maschine verwenden. Remote-Desktop und SSH sind unterschiedliche Verbindungswege. Eine erfolgreiche SSH-Verbindung bestätigt nur, dass der SSH-Pfad erreichbar ist.
Prüfen Sie anhand der Verbindungsanleitung den Desktopdienst, den Zugriffsport und das Tunnelziel. Notieren Sie bei einem schwarzen Bildschirm die Meldung des Clients und die Schritte, bei denen das Problem auftritt. Versuchen Sie anschließend, Auflösung oder Bildqualität zu verringern, um Anzeigeprobleme von Authentifizierungsfehlern zu unterscheiden. Beenden Sie vor einem Neustart laufende Archivierungs- oder Testaufgaben.
Die Verbindungs- und Migrationsreihenfolge finden Sie in der Anleitung zu SSH und Remoteverbindungen. Den Desktopzugang finden Sie nach der Anmeldung in den Instanzdetails.
Sichern Sie zuerst den Fehlerzustand und prüfen Sie anschließend Xcode, Scheme, Abhängigkeiten und Zielplattform. Die abschließende Fehlermeldung im Protokoll ist nur das Ergebnis. Entscheidend ist der erste Compiler- oder Signierungsfehler.
Notieren Sie den aktuellen Commit, den Build-Befehl und die Xcode-Version. Vergewissern Sie sich, dass das Scheme vorhanden und für die Archivierung vorgesehen ist. Bei Befehlen in der Shell muss auch das ausgewählte Entwicklerverzeichnis stimmen. So vermeiden Sie, dass lokal eine andere Xcode-Version als in der CI verwendet wird.
xcode-select -p
xcodebuild -version
xcodebuild -list -workspace App.xcworkspace
Ersetzen Sie App.xcworkspace und App durch die tatsächlichen Projektnamen. Wenn das Projekt ein Workspace verwendet, geben Sie nicht versehentlich ein Project an. Fehlende Abhängigkeiten, ein nicht eingechecktes Shared Scheme oder ein nicht zum SDK passendes Deployment Target können schon vor der Archivierung zu Fehlern führen.
set -o pipefail
xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-destination 'generic/platform=iOS' \
-archivePath "$PWD/output/App.xcarchive" \
archive 2>&1 | tee archive.log
Dieser Schritt erzeugt eine .xcarchive, keine verteilbare IPA-Datei. Wenn die Archivierung gelingt, der Export aber fehlschlägt, prüfen Sie Signierung und Provisioning Profile. Verarbeiten Sie nicht erneut alle Build-Abhängigkeiten.
Prüfen Sie den Cache als mögliche Ursache, wenn nach einem Toolchain-Wechsel Modul-Caches inkompatibel sind, generierte Dateien voneinander abweichen oder derselbe Commit in einer sauberen Umgebung funktioniert, mit dem alten Cache aber nicht. Stoppen Sie zuerst die Builds dieses Projekts und sichern Sie die Protokolle. Löschen Sie nicht das gesamte Benutzerverzeichnis.
Für eine sicherere Prüfung geben Sie diesem Build ein neues, projektspezifisches Verzeichnis. Das alte Verzeichnis bleibt zum Nachsehen erhalten. Schlägt der Build auch mit dem neuen Verzeichnis fehl, suchen Sie weiter bei Quellcode, Abhängigkeiten oder Konfiguration, statt den Cache wiederholt zu löschen.
xcodebuild \
-workspace App.xcworkspace \
-scheme App \
-derivedDataPath "$PWD/.build/DerivedData-check" \
-destination 'generic/platform=iOS' \
build
Wenn der Build wieder funktioniert, können Sie alte, nicht mehr benötigte Verzeichnisse gezielt bereinigen. Wenn Quellcode, Signierdateien, Archive und DerivedData getrennt gespeichert werden, sinkt das Risiko, versehentlich etwas zu löschen.
Klären Sie zuerst, ob Sie ein Gerätearchiv erstellen oder einen Simulator-Test ausführen. Für ein Geräte-Archive wählen Sie ein iOS-Geräteziel. Für Simulator-Tests benötigen Sie eine Runtime und ein Gerät, die von der aktuellen Xcode-Version unterstützt werden. Verwenden Sie kein Simulatorziel für ein Distributionsarchiv.
xcrun simctl list runtimes
xcrun simctl list devices available
xcodebuild -showdestinations \
-workspace App.xcworkspace -scheme App
Installieren Sie fehlende Runtime-Komponenten der Plattform in den Xcode-Einstellungen. Unterstützt Ihre Xcode-Version den Befehl, können Sie die iOS-Plattformkomponenten auch wie unten gezeigt herunterladen. Prüfen Sie zuerst den verfügbaren Speicherplatz und stellen Sie sicher, dass in der Shell die gewünschte Xcode-Version ausgewählt ist.
xcodebuild -downloadPlatform iOS
Listen Sie nach der Installation die Destinations erneut auf und übernehmen Sie ein tatsächlich verfügbares Ziel in die CI. Verwenden Sie nicht dauerhaft die Simulator-ID eines anderen Rechners.
Eine .p12-Datei enthält Zertifikat und privaten Schlüssel. Ein Provisioning Profile legt App und Funktionen fest. Ein API Key dient der Authentifizierung bei entsprechenden Schnittstellen. Diese Ressourcen sind nicht austauschbar.
Übertragen Sie die .p12-Datei über einen sicheren Kanal auf die Maschine, importieren Sie sie in den für den Build verwendeten Schlüsselbund und vergewissern Sie sich, dass sie den zugehörigen privaten Schlüssel enthält. Nur mit dem Zertifikat, aber ohne privaten Schlüssel, ist keine Codesignierung möglich. Stellen Sie das Importpasswort über eine CI-Secret-Variable bereit. Speichern Sie es nicht im Repository, in Skripten oder im Ticket.
security find-identity -v -p codesigning
Führen Sie die Prüfung in der Benutzerumgebung aus, in der der Runner tatsächlich läuft. Dass ein Zertifikat für den Desktopbenutzer sichtbar ist, bedeutet nicht, dass auch ein anderer Dienstbenutzer darauf zugreifen kann. Prüfen Sie außerdem, ob der Schlüsselbund entsperrt und in der Suchliste des Benutzers enthalten ist und ob der Signierprozess Zugriffsrechte hat.
Verwenden Sie für den Build einen eigenen Schlüsselbund und sperren Sie ihn nach Abschluss der Aufgabe gemäß Ihrem Ablauf. Wenn Sie Hilfe benötigen, teilen Sie nur bereinigte Prüfergebnisse zur Signieridentität und den Fehlertext mit. Senden Sie weder die .p12-Datei noch den privaten Schlüssel oder das Importpasswort.
Stimmen Sie vier Angaben aufeinander ab: Bundle ID, Team ID, Exportzweck und Entitlements. Bei Apps mit Erweiterungen benötigt jedes zu signierende Target eine passende Konfiguration. Ein passendes Profil für die Haupt-App bedeutet nicht, dass auch die Erweiterungen korrekt konfiguriert sind.
Prüfen Sie außerdem, ob das Provisioning Profile gültig ist, das verwendete Zertifikat enthält und die Signiermethode in den Exportoptionen zum Projekt passt. Für Entwicklungstests und Distributionsversionen gelten unterschiedliche Konfigurationen. Wählen Sie nicht allein aufgrund eines ähnlichen Dateinamens.
Bewahren Sie die Protokolle des Exportvorgangs und eine bereinigte Kopie der ExportOptions.plist auf. Geben Sie im Ticket an, ob der Fehler bei archive oder exportArchive auftrat. So lässt sich die Ursache schneller eingrenzen.
Speichern Sie die .p8-Datei in einem zugriffsbeschränkten Verzeichnis. Stellen Sie Key ID, Issuer ID und Dateipfad über CI-Secret-Variablen bereit. Verwenden Sie nur die Berechtigungen, die für Upload oder Automatisierung erforderlich sind. Schreiben Sie den Schlüsselinhalt nicht direkt in eine Lane und checken Sie ihn nicht ins Repository ein.
Ein API Key kann Uploads und Verwaltungsabläufe unterstützen, die diese Authentifizierungsmethode verwenden. Er ersetzt jedoch nicht das Zertifikat mit privatem Schlüssel, das für die lokale Codesignierung benötigt wird. Unterscheiden Sie bei fehlgeschlagenen TestFlight-Uploads zwischen Signierfehlern beim lokalen Build und Problemen mit Authentifizierung, App-Berechtigungen oder Versionsangaben.
Aktualisieren Sie nach dem Wechsel des Schlüssels die Runner-Konfiguration und entfernen Sie Verweise auf den alten Schlüssel. Wenn Sie Unterstützung benötigen, teilen Sie den bereinigten Fehlercode und den betroffenen Schritt mit. Senden Sie nicht die .p8-Datei.
Prüfen Sie die Leseberechtigung für das Signierungs-Repository, die Entschlüsselungsphrase, den Verteilungstyp, die App-Kennung und die Teamkonfiguration. Die CI sollte im Alltag bereits vorbereitete Signierressourcen bevorzugt schreibgeschützt abrufen, statt bei jedem Lauf Zertifikate erstellen oder ändern zu wollen.
lane :prepare_signing do
match(
type: "appstore",
readonly: true,
app_identifier: ENV.fetch("APP_IDENTIFIER"),
team_id: ENV.fetch("TEAM_ID")
)
end
Verwalten Sie die Zugangsdaten für das Repository und die Entschlüsselungsphrase getrennt. Schlägt der Abruf fehl, prüfen Sie zuerst die Repository-Authentifizierung. Bei einem Entschlüsselungsfehler prüfen Sie die Phrase. Wenn die Installation gelingt, die Signierung aber fehlschlägt, untersuchen Sie Schlüsselbund und Provisioning Profile. Fassen Sie diese drei Fehlerarten nicht unter „match funktioniert nicht“ zusammen.
Tag, Woche, Monat und Quartal haben jeweils eigene Preise. Rechnen Sie den Tagespreis nicht einfach auf andere Laufzeiten hoch. Beide Modelle sind dedizierte physische Macs, keine virtuellen Maschinen. Maßgeblich ist der Betrag in der Bestellübersicht.
| Modell und Konfiguration | Tag | Woche | Monat | Quartal |
|---|---|---|---|---|
| OSXBuild Bake M4 M4 / 16GB / 256GB | $20.1 | $54.2 | $100.3 | $272.8 |
| OSXBuild Bake M4 Pro M4 Pro / 64GB / 2TB | $60.3 | $162.9 | $301.6 | $820.4 |
Wählen Sie den Zeitraum passend zur voraussichtlichen durchgehenden Nutzung und prüfen Sie den Modellpreis sowie die Zusatzoptionen für denselben Zeitraum. Die genauen Start- und Endzeiten stehen in der Bestellung. „Monat“ bedeutet nicht einfach die verbleibenden Tage eines Kalendermonats.
Für zusätzliche SSDs und Thunderbolt 5 gibt es jeweils Listenpreise für vier Laufzeiten. Wählen Sie die gewünschten Optionen zuerst im Konfigurator aus und prüfen Sie anschließend die Bestellübersicht. Beurteilen Sie den Endbetrag nicht allein anhand des Grundpreises des Modells. Die vollständige Preisliste und Empfehlungen zur Auswahl finden Sie unter Mietoptionen und Zusatzleistungen.
Melden Sie sich in der Konsole an und öffnen Sie das entsprechende Abonnement oder die Bestellung. Prüfen Sie Ablaufdatum, verfügbare Verlängerungsoptionen und Rechnung. Bestätigen Sie nach der Zahlung das neue Ablaufdatum. Eine geöffnete Zahlungsseite oder eine abgeschickte Zahlung allein bedeutet nicht, dass die Verlängerung bereits wirksam ist.
Ob die automatische Verlängerung aktiviert ist und offene Rechnungen vorliegen, sehen Sie in den Einstellungen und im Status der jeweiligen Bestellung. Verlängern Sie Maschinen, die Sie weiter nutzen möchten, rechtzeitig und prüfen Sie anschließend das Ergebnis. Exportieren Sie bei Maschinen, die Sie nicht weiter mieten möchten, Quellcode, Build-Artefakte und erforderliche Konfigurationen im Voraus.
Nach Ablauf der Mietzeit wird die Maschine eingezogen, die Festplatte sicher gelöscht und das System neu installiert. Verwenden Sie den Knoten nicht als einziges Backup und verlassen Sie sich nicht darauf, lokale Dateien erst nach Ablauf abzurufen.
Unterstützt werden ausschließlich USDT-TRC20 und Visa / Mastercard / Amex (über Stripe). Abgerechnet wird vollständig in US-Dollar (USD). Welche Zahlungswege aktuell verfügbar sind, hängt von der Rückmeldung des Backend-Gateways ab.
Prüfen Sie bei einer Zahlung mit USDT-TRC20 Netzwerk, Empfängeradresse und Betrag auf der Checkout-Seite einzeln. Verwenden Sie keine Zahlungsdaten aus einer älteren Bestellung. Folgen Sie bei Kartenzahlungen den Hinweisen des Zahlungs-Gateways und kehren Sie anschließend zur Konsole zurück, um den Status zu prüfen.
Geben Sie bei Zahlungsproblemen Bestellnummer, gewählten Zahlungsweg, bereinigte Fehlermeldung und Transaktionsreferenz an. Kreditkartenzahlungen werden von Stripe verarbeitet. Für Tickets oder E-Mails benötigen wir weder die vollständige Kartennummer noch den Sicherheitscode.
Mit reproduzierbaren Schritten lässt sich ein Problem besser untersuchen als mit „Build fehlgeschlagen“. Sichern Sie bei laufenden Aufgaben zuerst den aktuellen Zustand, bevor Sie neu starten oder Einstellungen ändern.
Stoppen Sie zuerst Builds und Tests und sichern Sie Protokolle sowie nicht eingecheckte Dateien. Starten Sie danach die Maschine neu. Notieren Sie die Symptome vor und nach dem Neustart. Wenn die aktuelle Aufgabe nicht unterbrochen werden kann, erwähnen Sie im Ticket, dass Sie noch nicht neu gestartet haben, und nennen Sie den Grund.
Vergleichen Sie Host, Benutzername, Port und Schlüsselzuordnung mit den Daten der aktuellen Instanz. Nennen Sie den genauen Fehlertext. Laden Sie weder den privaten Schlüssel hoch noch senden Sie das Passwort für die erste Anmeldung.
Hängen Sie die letzten 50 Zeilen sowie den Kontext des ersten relevanten Fehlers an. Geben Sie Befehl, Xcode-Version und Commit-Kennung an. Bei längeren Protokollen können Sie die Datei über ein Support-Ticket in der Konsole anhängen. Entfernen Sie vorher Tokens und Signierungsgeheimnisse.
Geben Sie Bestellnummer, Knoten, Zeitpunkt und Zeitzone des Problems sowie erwartetes und tatsächliches Ergebnis an. Ergänzen Sie, wann der Ablauf zuletzt funktioniert hat, damit der Support grundlegende Angaben nicht erneut erfragen muss.
Letzte Protokollzeilen ausgeben, ohne Build-Artefakte zu ändern:
tail -n 50 archive.log
Private Schlüssel von Zertifikaten, .p12-Passwörter, .p8-Dateien, Zugangstokens und Konsolenpasswörter gehören nicht in Supportunterlagen.
Bei bestehenden Bestellungen oder Maschinenproblemen melden Sie sich in der Konsole an und erstellen Sie ein Support-Ticket. Bei Fragen vor dem Kauf, Problemen mit der Anmeldung oder wenn Sie weitere Kontaktdaten angeben möchten, schreiben Sie an support@osxbuild.com.
Der Support bearbeitet Anfragen über Zeitzonen im Asien-Pazifik-Raum und an der US-Westküste hinweg. Den Bearbeitungsstand sehen Sie im Ticket oder per E-Mail. Geben Sie bei der Anfrage Ihre Zeitzone und passende Zeitfenster für die Fehlersuche an und ergänzen Sie neue Ergebnisse im bestehenden Ticket.
Auf der Kontaktseite erfahren Sie, welche Angaben für die verschiedenen Anfragen hilfreich sind. Die Maschinen laufen 365 Tage im Jahr durchgehend. Die Zeiten für Supportantworten sind davon unabhängig.