CI/CD 18. Oktober 2026 ca. 11 Min. fastlane iOS-Tests

Wie führt fastlane scan Tests auf einem Remote Mac aus? Leitfaden 2026

Diese Anleitung zeigt iOS-Entwicklern und CI-Verantwortlichen, wie sie fastlane scan auf einem Remote Mac vom Projektcheck bis zur CI-Abnahme einsetzen. Sie grenzt Simulator-Tests von echter Gerätevalidierung ab und beschreibt, wie sich Fehler und Testergebnisse nachvollziehbar sichern lassen.

Wie führt fastlane scan Tests auf einem Remote Mac aus? Leitfaden 2026

Diese Anleitung zeigt iOS-Entwicklern und CI-Verantwortlichen, wie sie fastlane scan auf einem Remote Mac vom Projektcheck bis zur CI-Abnahme einsetzen. Sie grenzt Simulator-Tests von echter Gerätevalidierung ab und beschreibt, wie sich Fehler und Testergebnisse nachvollziehbar sichern lassen.

Dokumentierter Ausgangspunkt: Die fastlane-Dokumentation beschreibt scan beziehungsweise run_tests als Aufruf für iOS-Tests. fastlane ordnet die Aktion dem Testlauf zu.
Schnellster Weg: Lassen Sie den Aufruf auf einem Remote Mac ausführen, prüfen Sie dort Scheme und tatsächlich verfügbaren Simulator und übernehmen Sie den Ablauf erst nach einem nachvollziehbaren Testlauf in die CI/CD. Ein erfolgreicher Simulatorlauf ersetzt keine Prüfung auf einem realen Gerät.

Diese Anleitung richtet sich an iOS-Entwickler, die Tests mit fastlane scan steuern möchten, und an CI-Ingenieure, die einen Mac-Buildknoten warten.
Sie hilft außerdem unabhängigen Entwicklern und kleinen Teams, vor einer dauerhaften Bindung zu prüfen, ob ein gemieteter Remote Mac in den eigenen Testablauf passt.

01

Was fastlane scan auf dem Remote Mac übernimmt

fastlane scan ist kein macOS-Ersatz, kein Simulator und kein eigenständiger Testdienst. Es stößt einen Testlauf für ein iOS-Projekt an; dafür müssen Projekt, Xcode-Werkzeugkette und ein passendes Ausführungsziel auf dem Mac vorhanden sein. Die Aktion run_tests stellt Optionen für diese Testausführung bereit. Maßgeblich sind die Dokumentation zu run_tests und die Xcode-Befehlszeilenreferenz von Apple.

Diese Abgrenzung ist für die Fehlersuche wichtig: Ein gestarteter Lane-Aufruf belegt zunächst nur, dass fastlane ausgeführt wurde. Er belegt nicht, dass die Abhängigkeiten aufgelöst, das richtige Scheme gebaut, der gewünschte Simulator gestartet und die Tests abgeschlossen wurden. Ebenso sagt ein grüner Simulatorlauf allein nichts darüber aus, wie sich die App auf realer Hardware verhält.

Für eine erste Remote-Prüfung empfiehlt sich deshalb ein kleines, bereits bekanntes Testziel. Wenn das auf dem Remote Mac dieselben erwarteten Testergebnisse liefert wie in der lokalen Entwicklungsumgebung, ist die Grundlage für einen größeren Testlauf gelegt. Die Freigabe für CI/CD sollte erst danach erfolgen.

02

Vor dem ersten Lauf: Projekt- und Werkzeugkettenbasis

Prüfen Sie zunächst, ob das Remote-Arbeitsverzeichnis tatsächlich den Projektstand enthält, den Sie testen möchten. Ein vorhandenes Repository ohne korrekt geladene Unterprojekte, benötigte Konfigurationsdateien oder Testressourcen kann einen Fehler erzeugen, der zunächst wie ein Problem mit fastlane aussieht. Halten Sie fest, welcher Commit beziehungsweise Arbeitsstand geprüft wird, und verwenden Sie für den Vergleich lokal und remote denselben Stand.

Danach folgen die Projekt- und Xcode-Einstellungen:

  • Workspace oder Projektdatei: Verwenden Sie den Einstiegspunkt, den das Projekt auch lokal für Tests nutzt. Verwechseln Sie nicht eine .xcodeproj-Datei mit einem benötigten Workspace.
  • Scheme: Kontrollieren Sie, ob es auf dem Remote Mac verfügbar und für den Testlauf geeignet ist. Ein Scheme, das nur lokal oder in einer nicht eingecheckten Xcode-Konfiguration existiert, lässt sich auf dem Knoten nicht zuverlässig auswählen.
  • Testziele und Testplan: Prüfen Sie, welche Unit- oder UI-Testziele zum Scheme gehören und ob ein Testplan ausgewählt werden muss. Apple beschreibt, wie Testpläne Tests organisieren und ihr Feedback strukturieren.
  • Xcode-Auswahl: Stellen Sie fest, welche Xcode-Umgebung der Remote Mac für den Aufruf tatsächlich verwendet. Die installierte Version allein reicht als Nachweis nicht; entscheidend ist die vom Prozess aufgerufene Werkzeugkette.
  • Ruby und fastlane: Halten Sie fest, wie Ihr Projekt Ruby und fastlane verwaltet. Nutzen Sie, sofern vorhanden, die bestehenden Projektdateien zur Versions- und Abhängigkeitsbindung, statt auf dem Knoten nebenbei eine abweichende globale Umgebung einzurichten.
  • Abhängigkeiten und Berechtigungen: Klären Sie, ob Paketquellen erreichbar sind, ob das Projekt Zugriff auf private Abhängigkeiten benötigt und welche Zugangsdaten der Testlauf wirklich braucht.

Für macOS-Projekte mit Geheimnissen, Signiermaterial oder privaten Quellcode-Repositories ist die Trennung zwischen Testzugang und Administrationszugang besonders wichtig. Gewähren Sie dem Lane-Prozess nur die benötigten Rechte, und geben Sie Schlüssel oder Tokens nicht in ausführbaren Logs aus. Bei einem Teamknoten sollten außerdem Zuständigkeit für Zugangsdaten, Bereinigung nach dem Lauf und Zugriff auf Testergebnisse dokumentiert sein. Diese Punkte beeinflussen nicht nur Datenschutz und DSGVO-Konformität, sondern auch, ob sich ein fehlgeschlagener Lauf sicher wiederholen lässt.

03

Die Testumgebung vor dem Lauf abgleichen

Vor dem ersten Aufruf sollten die erwarteten Projektwerte und die verfügbaren Ressourcen des Remote Mac zusammenpassen. Prüfen Sie insbesondere die Simulatorliste auf diesem Knoten, anstatt eine lokal angezeigte Gerätekombination zu übernehmen. Simulatoren können von der dort installierten Xcode-Umgebung abhängen; ein in der Lane eingetragener Gerätename ist daher keine Garantie, dass das Ziel auf dem Remote Mac existiert.

Was vor dem Start zu prüfen ist

Vergewissern Sie sich, dass das Projekt die benötigten Testziele enthält, das ausgewählte Scheme sie einbezieht und der Zielsimulator auf dem Remote Mac verfügbar ist. Dokumentieren Sie zudem, wie Ruby und fastlane im Projekt gestartet werden und welche Abhängigkeiten vor dem Testlauf vorbereitet werden müssen. So lässt sich später unterscheiden, ob ein Fehler aus der Projektkonfiguration, der Umgebung oder dem Test selbst stammt.

Was bei einem fehlenden Simulator zuerst zu prüfen ist

Wenn fastlane scan den vorgesehenen iOS Simulator nicht findet, prüfen Sie zunächst die tatsächliche Simulatorliste der Remote-Mac-Umgebung und gleichen Sie sie mit dem ausgewählten Xcode sowie dem konfigurierten Ziel ab. Kontrollieren Sie danach Schreibweise und Zielauswahl in der Lane. Erst wenn diese Angaben zusammenpassen, ist es sinnvoll, tiefer in den Startvorgang einzusteigen. Eine lokale Simulatorliste ist kein verlässlicher Ersatz für die Prüfung am Ausführungsknoten.

04

Erstkonfiguration in einer wiederverwendbaren Lane

Legen Sie den Testaufruf in einer Lane ab, statt die Parameter nur als einmaligen Terminalbefehl zu verwenden. So können Entwickler und CI denselben Einstiegspunkt nutzen und Änderungen an Scheme, Testplan oder Ergebnisablage an einer nachvollziehbaren Stelle prüfen. Die folgende Skizze verwendet bewusst Platzhalter. Ersetzen Sie sie durch die Werte Ihres Projekts und einen Simulator, den der Remote Mac tatsächlich anbietet.

lane :remote_tests do
  run_tests(
    workspace: "<PFAD_ZUM_WORKSPACE>",
    scheme: "<SCHEME_NAME>",
    devices: ["<VERFÜGBARER_SIMULATOR>"],
    result_bundle_path: "<PFAD_ZUM_ERGEBNISBUNDLE>"
  )
end

Die konkrete Schreibweise und Verfügbarkeit einzelner Parameter müssen Sie mit der aktuellen Parameterdokumentation von run_tests und der vorhandenen Projektkonfiguration abgleichen. Verwenden Sie nicht ungeprüft Optionen aus einem älteren Beispiel: Die passende Konfiguration hängt unter anderem davon ab, ob das Projekt mit einem Workspace oder einer Projektdatei arbeitet und wie seine Testpläne eingerichtet sind.

Für einen kontrollierten Einstieg begrenzen Sie den ersten Lauf auf ein bekanntes Testziel, sofern die Projektstruktur diese Auswahl unterstützt. Erweitern Sie ihn erst, wenn der minimale Lauf den erwarteten Build- und Testergebnisweg durchlaufen hat. Ein zu früh gestarteter Volltest kann mehrere Fehlerarten gleichzeitig sichtbar machen, ohne ihre Ursache klarer einzugrenzen.

Die Lane muss außerdem nachvollziehbar festlegen, wo Ergebnisse und Logs abgelegt werden. Verwenden Sie Pfade, die für den Prozess auf dem Remote Mac erreichbar sind, und entscheiden Sie, wie die CI sie nach dem Lauf abholt. fastlane kann den Testaufruf in einer CI-Umgebung einbinden; die CI-Dokumentation von fastlane erläutert eine solche Integration. Sie ersetzt nicht die teaminterne Festlegung, wie Artefakte gespeichert, zugriffsgeschützt und aufbewahrt werden.

05

Erster Probelauf und Fehlereingrenzung

Führen Sie den ersten Lauf im Remote-Kontext aus und notieren Sie, welcher Commit, welches Scheme, welcher Testplan und welches Ziel verwendet wurden. Erhöhen Sie die Testabdeckung schrittweise. Prüfen Sie nicht nur den Rückgabestatus des Lane-Aufrufs, sondern verfolgen Sie, ob die erwarteten Phasen durchlaufen wurden.

Eine hilfreiche Diagnose trennt mindestens vier Ebenen:

  1. Abhängigkeiten: Wurden benötigte Pakete und Projektabhängigkeiten gefunden oder aufgelöst?
  2. Build: Wurde die App samt Testziel mit dem erwarteten Scheme gebaut?
  3. Simulator: Konnte der konfigurierte Simulator gestartet und als Testziel verwendet werden?
  4. Testausführung: Wurden Tests tatsächlich ausgeführt, und sind sie wegen einer Assertion oder wegen eines Umgebungsfehlers fehlgeschlagen?

Diese Trennung verhindert, dass jede rote CI-Markierung pauschal als fastlane-Fehler behandelt wird. Ein Fehler bei der Auflösung privater Pakete verlangt eine andere Korrektur als ein nicht vorhandenes Scheme oder ein fehlgeschlagener UI-Test. Legen Sie daher bei jeder Wiederholung fest, welche einzelne Änderung geprüft werden soll. Wenn Sie gleichzeitig Lane, Xcode-Auswahl und Abhängigkeiten verändern, verliert der Vergleich seinen diagnostischen Wert.

Hinweis: Der Start des Befehls ist kein Abnahmekriterium. Prüfen Sie Terminalausgabe und Xcode-Testresultat gemeinsam, bevor Sie den Lauf als erfolgreich einstufen.

Zur Auswertung können Sie die Apple-Dokumentation zum Ausführen und Interpretieren von Tests heranziehen. Relevant sind nicht nur die abschließende Statusmeldung, sondern auch die Zahl und Art der ausgeführten Tests, etwaige übersprungene Tests und die Zuordnung eines Fehlers zu Build, Ausführung oder Assertion. Vergleichen Sie die beobachteten Ergebnisse mit dem erwarteten Verhalten des konkreten Projekts; legen Sie keine allgemeine Erfolgsquote oder Laufzeit als Abnahme fest, wenn dafür keine Messung Ihrer Umgebung vorliegt.

06

Ergebnisdateien sichern und CI-Ausgabe prüfen

Ein Testergebnis ist nur dann später verwertbar, wenn es nach dem Lauf noch erreichbar ist. xcodebuild kann ein Xcode-Testresultat in einem Ergebnisbundle ablegen; der konkrete Pfad und die Übergabe an die CI müssen in der Lane beziehungsweise im Workflow festgelegt werden. Die oben verlinkte Apple-Dokumentation zum Testlauf beschreibt den Zusammenhang zwischen Ausführung und Ergebnisdarstellung.

Wie die CI Ergebnisdateien nach einem Fehlschlag behält

Legen Sie den Ausgabepfad für das Ergebnisbundle vor dem Lauf fest und prüfen Sie, dass der CI-Ablauf die Datei auch dann als Artefakt behandelt, wenn der Testschritt fehlschlägt. Ein Workflow, der Artefakte ausschließlich nach erfolgreichem Job speichert, kann gerade die wichtigste Diagnoseinformation verlieren. Bewahren Sie zusätzlich die für die Fehlersuche nötigen Textlogs auf und begrenzen Sie ihren Inhalt, wenn dort Pfade, interne Projektdaten oder sensible Werte erscheinen könnten.

Das Ergebnisbundle ermöglicht die spätere Prüfung des Testzustands, ist aber nicht automatisch ein vollständiges Archiv der gesamten CI-Ausführung. Definieren Sie separat, wo Logs landen, wie Teammitglieder die Dateien abrufen und wie lange sie nach internen Datenschutz- und Aufbewahrungsregeln benötigt werden. Die tatsächliche Upload- und Downloadmethode ist eine Entscheidung Ihrer Pipeline; sie lässt sich nicht allein aus dem Vorhandensein von fastlane scan ableiten.

Bewerten Sie außerdem die Rückgabe nach einem Fehler: Ist der Knoten nach einem abgebrochenen Simulatorlauf erneut nutzbar? Sind temporäre Dateien und Prozesse entfernt oder eindeutig einem Lauf zugeordnet? Werden Zugriffsrechte für Ergebnisdateien so gesetzt, dass nur berechtigte Teammitglieder sie einsehen? Ohne diese Prüfungen kann eine funktionierende Test-Lane im geteilten Betrieb trotzdem schwer wartbar oder datenschutzrechtlich ungeeignet sein.

07

Simulatorlauf und echte Gerätevalidierung

Ein erfolgreicher Lauf im iOS Simulator ist ein Nachweis für den getesteten Ablauf in dieser Simulatorumgebung, aber keine vollständige Geräteabnahme. Apple unterscheidet ausdrücklich zwischen Ausführung auf simulierten und physischen Geräten. Welche zusätzliche Prüfung nötig ist, hängt davon ab, ob die Anwendung auf Eigenschaften realer Hardware oder tatsächliche Geräteinteraktionen angewiesen ist.

Das betrifft insbesondere Szenarien, in denen ein Team Verhalten auf einem bestimmten Gerät, mit realen Sensoren oder unter konkreten Hardwarebedingungen bestätigen muss. Erfinden Sie dafür keine allgemeine Regel, wonach jeder UI-Test zwingend auf einem Gerät laufen müsse. Prüfen Sie stattdessen die Testanforderung des Projekts: Wenn der Zweck durch den Simulator abgedeckt ist, kann der Simulatorlauf Teil der CI sein; wenn ein Verhalten reale Hardware voraussetzt, ist ein ergänzender Geräteprüfschritt einzuplanen.

Redaktionelle Passungsbewertung – sie beschreibt die Eignung des Ansatzes für den jeweiligen Zweck, nicht gemessene Leistung:

  • Remote Mac plus Simulator für wiederholbare iOS-Tests: 5/5, wenn das Projekt in der passenden Xcode-Umgebung läuft und die Ergebnisse gesichert werden.
  • Simulatorlauf als alleiniger Nachweis für reale Gerätefunktionen: 2/5, weil er die Grenzen der Simulatorumgebung nicht aufhebt.
  • Lane-Aufruf ohne Ergebnisablage und Fehlerprüfung: 1/5, da sich ein grüner Start nicht zuverlässig als abgeschlossener Testlauf belegen lässt.
08

Abnahme vor dem CI/CD-Rollout

Vergleichen Sie vor der Freigabe dieselbe Projektversion lokal und auf dem Remote Mac, soweit Ihr lokaler Ablauf als Referenz geeignet ist. Stimmen Scheme, Testziele und erwartete Testergebnisse überein? Lassen sich Logs und Ergebnisbundle nach einem absichtlich fehlgeschlagenen Testlauf tatsächlich abrufen? Kann der Knoten nach dem Lauf erneut für einen Test verwendet werden? Diese Prüfpunkte beantworten mehr als ein einmaliges „Lane erfolgreich“-Signal.

Für die Entscheidung zwischen Weiterbetrieb und Nacharbeit eignet sich folgende Gegenüberstellung:

Option Passung für den nächsten Schritt Prüfkriterium
Remote Mac weiter erproben Hoch, wenn der minimale Test reproduzierbar läuft Gleicher Projektstand, erwartetes Scheme und abrufbares Ergebnisbundle
Lane in CI/CD aufnehmen Hoch, wenn Fehlerstatus und Artefaktablage zuverlässig sind Fehlgeschlagene Läufe behalten Logs und Ergebnisdateien
Testkonfiguration überarbeiten Hoch, wenn Scheme, Testplan oder Simulatorziel nicht eindeutig sind Konfiguration am Remote Mac entspricht dem Projektziel
Zusätzliche Gerätevalidierung einplanen Erforderlich, wenn reale Hardwaremerkmale zum Prüfziel gehören Testplan nennt ein Verhalten, das der Simulator nicht abdeckt

Die Abnahme sollte einen Fehlerfall einschließen, nicht nur den grünen Durchlauf. Lösen Sie dafür in einer kontrollierten Teständerung einen erwarteten Fehler aus und prüfen Sie, ob der Job mit einem passenden Status endet, die Artefakte erhalten bleiben und die verantwortliche Person die Ursache aus den Belegen eingrenzen kann. Entfernen Sie die Teständerung anschließend und bestätigen Sie, dass der normale Lauf wieder den erwarteten Zustand erreicht.

Nutzen Sie die Ergebnisse für eine klare Entscheidung: Bleiben Scheme, Simulatorziel oder Artefaktübergabe unklar, setzen Sie den Probelauf fort und korrigieren Sie zuerst diese Punkte. Sind Testlauf, Fehlerbelege und Wiederherstellung mit demselben Projektstand nachvollziehbar, kann die Lane in den regulären CI/CD-Ablauf übernommen werden. Wird echte Hardware benötigt, ergänzen Sie eine dafür geeignete Geräteprüfung, statt den Simulatorlauf als Ersatz auszugeben.

Für Teams ohne dauerhaft verfügbaren Mac ist ein Remote Mac eine mögliche Alternative zum sofortigen Hardwarekauf, sofern das Projekt und die erforderlichen Xcode-Werkzeuge dort tatsächlich laufen. Die Mietübersicht von VNCMac für Remote Macs kann als nächster Prüfpunkt dienen; für verteilte Teams sollte außerdem die passende Region anhand der eigenen Zugriffswege beurteilt werden, etwa über die Informationen zu Remote Macs in Japan. Prüfen Sie vor einer längerfristigen Entscheidung zunächst mit einem realen Scheme, ob Werkzeugkette, Zugriff und Ergebnisrückgabe in Ihrem Ablauf funktionieren. Wenn Sie dafür einen zeitlich begrenzten Testknoten benötigen, können Sie anschließend die Mietoptionen von VNCMac mit Selbstkauf und vorhandener CI-Infrastruktur vergleichen. Langfristige, dauerhaft ausgelastete Builds oder Anforderungen an physische Geräte können eine eigene Hardware- beziehungsweise Gerätefarm sinnvoller machen.