Symptom: Expo Go meldet ein fehlendes natives Modul? Installieren Sie das JavaScript-Paket nicht endlos neu: Fehlt dessen nativer Code in Expo Go, wechseln Sie zu einem Development Build.
Schnellste Lösung: Unter Windows können Sie weiter programmieren und einen iOS-Build über EAS Build erstellen lassen. Für den lokalen iOS-Simulator oder Xcode benötigen Sie dagegen macOS.
Dieser Leitfaden ist für Studierende gedacht, die mit einem Expo- oder React-Native-Kursprojekt erstmals an einer nativen Modulgrenze hängen bleiben.
Wenn Sie nur einen Windows- oder Schulcomputer haben, können Sie damit zwischen iPhone-Test, Cloud-Build und Mac-Simulator unterscheiden.
Auch wenn Sie bereits eine native Bibliothek eingebunden haben, finden Sie hier einen Ablauf zur abschließenden Prüfung.
Expo-Go-Fehler bei nativen Modulen zuerst einordnen
„Native Module“ klingt kompliziert. Gemeint ist hier ein Bestandteil, der neben JavaScript auch Code für iOS oder Android benötigt. Expo Go ist eine fertige App mit bereits eingebauten nativen Funktionen. Eine Bibliothek, die solche Funktionen voraussetzt, kann nicht allein dadurch in Expo Go verfügbar werden, dass Sie ihr JavaScript-Paket in Ihrem Projekt installieren.
Expo beschreibt den Umfang der in Expo Go verfügbaren Bibliotheken als festgelegt. Prüfen Sie zuerst die offizielle Übersicht unterstützter Drittanbieter-Bibliotheken und die Expo-Erklärung zu Expo Go und Development Builds. Die entscheidende Frage lautet: Benötigt die Bibliothek nativen Code, und ist dieser Code in der Expo-Go-App enthalten?
Nicht jede Fehlermeldung bedeutet, dass Expo Go der Grund ist. Unterscheiden Sie drei Fälle:
- Installationsfehler: Der Paketmanager konnte eine Abhängigkeit nicht laden, oder die Installation wurde nicht abgeschlossen. Prüfen Sie dann die Installationsausgabe und den Projektordner.
- JavaScript-Fehler: Die Anwendung startet, zeigt aber beispielsweise einen Import-, Syntax- oder Laufzeitfehler. Prüfen Sie den betroffenen Code und den Importpfad.
- Fehlende native Implementierung: Das Paket lässt sich installieren, aber die App meldet zur Laufzeit, dass ein natives Modul nicht vorhanden oder nicht registriert ist. Prüfen Sie die Bibliotheksdokumentation und die von Expo unterstützte Nutzung.
Ein typischer Stolperstein: Sie sehen, dass das Paket im Projekt auftaucht, und nehmen an, damit sei auch die iPhone-App erweitert. Das sind jedoch zwei verschiedene Dinge. Das Paket stellt JavaScript-Dateien bereit. Native Bestandteile müssen in der App selbst enthalten sein. Expo erklärt diesen Unterschied in der FAQ zu Development Builds.
Fehlermeldungen anhand des Projekts prüfen
Bevor Sie den Build-Weg ändern, ordnen Sie den Fehler seinem Ursprung zu. So vermeiden Sie, dass ein einfacher Tippfehler als Plattformproblem behandelt wird.
- Machen Sie den Fehler reproduzierbar. Starten Sie das Kursprojekt erneut und notieren Sie, bei welcher Aktion die Meldung erscheint: beim Start, beim Öffnen eines Bildschirms oder erst nach dem Aufruf einer bestimmten Funktion.
- Lesen Sie die genaue Meldung. Halten Sie fest, ob der Fehler vom Paketmanager, aus JavaScript oder von einer fehlenden nativen Funktion stammt. Eine allgemeine Vermutung wie „Expo ist kaputt“ hilft bei der Diagnose nicht.
- Prüfen Sie die Bibliotheksdokumentation. Suchen Sie dort nach Hinweisen zu Expo Go, nativen Anforderungen und erforderlichen Projektkonfigurationen. Vergleichen Sie diese Hinweise mit der Expo-Übersicht zu Drittanbieter-Bibliotheken.
- Kontrollieren Sie, was sich geändert hat. Wurde eine Bibliothek neu hinzugefügt? Wurde eine Einstellung geändert, die iOS-Projektdateien oder native Konfiguration betrifft? Schreiben Sie die Änderung auf, bevor Sie weitere Schritte testen.
- Wählen Sie den passenden Reparaturweg. Bei einem Installations- oder JavaScript-Fehler korrigieren Sie diese Ursache. Fehlt der native Code in Expo Go, planen Sie einen eigenen Development Build statt wiederholt Expo Go neu zu installieren.
Leeren Sie nicht vorsorglich den Zwischenspeicher und installieren Sie nicht blind alle Pakete neu. Solche Schritte können bei bestimmten Installationsproblemen helfen, fügen aber keine native Implementierung zu Expo Go hinzu. Wenn die Fehlermeldung tatsächlich auf fehlenden nativen Code hinweist, behandeln Sie sie als Grenze der verwendeten App und nicht als beschädigten Download.
Development Build als eigene Übungs-App einsetzen
Ein Development Build ist Ihre eigene Entwicklungs-App: Er enthält die nativen Abhängigkeiten und Konfigurationen Ihres Projekts. Er ist nicht einfach ein Plug-in, das Expo Go nachträglich neue native Funktionen gibt. Die Expo-Einführung in Development Builds beschreibt diesen Weg für Projekte, die ihre eigene native Entwicklungsumgebung benötigen.
Das ist insbesondere wichtig, wenn Sie nach dem Erstellen des Development Builds eine native Bibliothek ergänzen oder die native Konfiguration ändern. In diesem Fall reicht es nicht unbedingt, nur die JavaScript-Dateien erneut zu laden. Die App muss die geänderten nativen Bestandteile enthalten; dafür ist ein erneuter Build erforderlich. Wenn Sie dagegen lediglich JavaScript-Code ändern und keine native Abhängigkeit oder Konfiguration betroffen ist, können Sie den bestehenden Development-Build-Workflow weiterverwenden. Die Anleitung zur Nutzung eines Development Builds erläutert den Entwicklungsablauf.
Wichtig: Ein erfolgreicher Cloud-Build beweist noch nicht, dass Sie den iOS-Simulator unter Windows starten können. EAS Build erstellt ein App-Artefakt; der Simulator ist ein separates Werkzeug, das eine Mac-Umgebung voraussetzt.
Prüfen Sie zusätzlich, ob die Bibliothek eine native Konfiguration oder zusätzliche Einrichtung verlangt. Expo beschreibt dafür auch, wie Sie nativen Code und native Anpassungen einbeziehen. Verlassen Sie sich nicht allein auf einen Paketnamen oder auf einen erfolgreichen Installationsbefehl. Entscheidend ist, ob die konkrete Bibliothek in der App, auf der Sie testen, tatsächlich unterstützt und konfiguriert ist.
Windows, iPhone und Mac-Simulator passend auswählen
Sie können den JavaScript-Teil Ihres Projekts an einem Windows-Computer weiterbearbeiten. Wenn Sie für iOS einen Build brauchen, kann EAS Build die Erstellung in der Cloud übernehmen. Das ist ein Build-Schritt, aber keine Möglichkeit, den iOS-Simulator auf Windows auszuführen. Expo führt den Simulator als macOS-Werkzeug; die Expo-Anleitung zum iOS-Simulator nennt diese Plattformgrenze. Für einen Simulator-Build finden Sie außerdem einen Expo-Leitfaden für Development Builds im iOS-Simulator.
| Weg | Was Sie damit erledigen | Grenze, die Sie einplanen sollten |
|---|---|---|
| Expo Go | Grundlagen lernen und Funktionen testen, die in Expo Go enthalten sind | Nicht für native Bibliotheken geeignet, deren Code in Expo Go fehlt |
| iPhone mit Development Build | Die eigene Entwicklungs-App auf einem physischen Gerät prüfen | Das Gerät muss zur verwendeten Build- und Installationsmethode passen |
| EAS Build | Einen iOS-Build in der Cloud erstellen lassen, auch wenn Sie den Projektcode unter Windows bearbeiten | Der Cloud-Build startet nicht den iOS-Simulator auf Ihrem Windows-Rechner |
| Mac mit iOS-Simulator | Simulator- und Xcode-Arbeit in macOS erledigen und den Simulator-Build prüfen | Erfordert Zugriff auf eine geeignete Mac-Umgebung |
Für den Kursalltag heißt das: Wenn die Aufgabe nur JavaScript-Grundlagen oder Funktionen aus Expo Go verlangt, müssen Sie nicht vorsorglich zu einem Mac wechseln. Wenn eine native Bibliothek gebraucht wird, bauen Sie eine Development App. Wenn die Bewertung ausdrücklich einen iOS-Simulator oder Xcode voraussetzt, organisieren Sie zusätzlich macOS-Zugriff.
Für einen gelegentlichen Simulator-Test können Sie zunächst prüfen, ob Ihre Schule einen Mac-Arbeitsplatz anbietet. Das ist oft der einfachste Weg, wenn Sie ohnehin nur eine konkrete Abgabe prüfen müssen. Ist ein Schulgerät nicht verfügbar oder zeitlich schwer planbar, können Sie sich die Mac-Umgebung und Nutzungsmöglichkeiten bei MACCOME ansehen. Das ist eine Option für den macOS-Teil der Arbeit, kein Ersatz für die Entscheidung, ob Ihr Kursprojekt überhaupt einen Simulator benötigt.
Eine eigene Mac-Anschaffung kann sich lohnen, wenn Sie dauerhaft Xcode verwenden, regelmäßig am Gerät testen und unabhängig von fremden Zugängen arbeiten möchten. Vor dem Kauf sollten Sie allerdings klären, ob Ihr Budget und Ihr geplanter Nutzungszeitraum dazu passen. Wenn Sie Hardware und laufenden Bedarf erst gegeneinander abwägen, finden Sie hier Informationen zur Bestellung eines Mac mini. Ein Kauf löst aber nicht automatisch die Ursache eines falschen Imports oder eines JavaScript-Fehlers.
Expo Go und Development Build gezielt abgrenzen
Der Wechsel lohnt sich nicht allein deshalb, weil eine Fehlermeldung auftritt. Nutzen Sie diese Bedingungen für Ihre Entscheidung:
- Bleiben Sie zunächst bei Expo Go, wenn die verwendete Bibliothek laut Dokumentation unterstützt wird und der Fehler bei Installation, Import oder JavaScript-Ausführung entsteht. Beheben Sie dann den konkreten Fehler und prüfen Sie erneut.
- Wechseln Sie zu einem Development Build, wenn die Bibliothek nativen Code braucht, der nicht in Expo Go enthalten ist, oder wenn Ihr Projekt eine native Konfiguration erfordert. Wiederholtes Installieren der JavaScript-Abhängigkeit ändert diese Grenze nicht.
- Nutzen Sie EAS Build, wenn Sie unter Windows einen iOS-Build erstellen lassen möchten. Beachten Sie, dass Cloud-Build und Simulatorbetrieb unterschiedliche Aufgaben bleiben.
- Planen Sie macOS ein, wenn Sie den iOS-Simulator starten, mit Xcode arbeiten oder einen Simulator-Build lokal prüfen müssen. Ein Schul-Mac kann für eine einzelne Abnahme genügen; regelmäßige Arbeit kann einen verlässlicheren Zugang erfordern.
- Testen Sie auf einem iPhone, wenn Ihr Ziel die Nutzung der Development App auf einem echten Gerät ist und Ihr Kurs keine Simulatorprüfung verlangt.
Diese Entscheidung trennt vier Tätigkeiten, die leicht durcheinandergeraten: Code bearbeiten, die App bauen, sie auf einem Gerät starten und sie im Simulator prüfen. Eine Cloud kann Ihnen beim Bauen helfen. Sie übernimmt damit nicht automatisch den Bildschirm, die Eingabe oder den Betrieb eines lokalen iOS-Simulators.
Wenn Ihr Projekt Zugangsdaten oder private Schlüssel benötigt, legen Sie diese nicht in ein öffentliches Repository und teilen Sie sie nicht mit anderen. Verwenden Sie dafür den vorgesehenen privaten Konfigurationsweg und prüfen Sie die Expo-Dokumentation zu EAS-Umgebungsvariablen. Bei einem gemeinsam genutzten oder gemieteten Entwicklungszugang sollten Sie außerdem klären, wer Zugriff auf Projektdateien und Anmeldedaten hat. Bewahren Sie nur die Daten dort auf, die für Ihren Test erforderlich sind, und entfernen Sie nicht mehr benötigte Geheimnisse wieder.
Häufige Fragen zum Wechsel und zur iOS-Prüfung
Warum wird ein natives Modul in Expo Go nicht gefunden?
Expo Go enthält eine festgelegte Auswahl nativer Bibliotheken. Das Hinzufügen eines JavaScript-Pakets zu Ihrem Projekt erweitert die fertige Expo-Go-App nicht um nativen Code. Prüfen Sie die Expo-Unterstützung und die Anleitung des Pakets. Fehlt die native Implementierung, brauchen Sie für diese Funktion einen Development Build.
Wann ist der Wechsel von Expo Go zu einem Development Build sinnvoll?
Wechseln Sie, wenn eine von Ihrem Projekt benötigte native Bibliothek oder Konfiguration in Expo Go fehlt. Bei einem Installationsfehler oder einem JavaScript-Problem ist der Wechsel dagegen nicht automatisch die richtige Reparatur. Finden Sie zuerst heraus, wo die Meldung entsteht, und ändern Sie den Build-Weg nur, wenn der native Bestandteil tatsächlich fehlt.
Kann EAS Build unter Windows einen iOS-Development-Build erstellen?
EAS Build kann einen iOS-Build in der Cloud erstellen. Sie können also den Projektcode unter Windows bearbeiten und den Build-Auftrag cloudbasiert ausführen. Das bedeutet nicht, dass Sie den iOS-Simulator auf Windows starten können. Für die Simulatorprüfung benötigen Sie weiterhin macOS; ein iPhone ist eine andere Möglichkeit für Gerätetests.
Wie prüfen Sie einen Development Build im iOS-Simulator?
Erstellen Sie einen ausdrücklich für den Simulator vorgesehenen iOS-Build und verwenden Sie ihn in einer Mac-Umgebung mit iOS-Simulator. Starten Sie die Development App, testen Sie das betroffene native Modul und prüfen Sie danach, ob eine reine JavaScript-Änderung in Ihrer laufenden Entwicklungsumgebung ankommt. Cloud-Erstellung und Simulatorprüfung sind getrennte Schritte.
Kursprojekt nach der Fehlerbehebung abnehmen
Führen Sie die Prüfung am selben Projekt durch, an dem der Fehler aufgetreten ist. So vermeiden Sie, dass ein neues Beispielprojekt funktioniert, während die eigentliche Kursabgabe weiterhin scheitert.
- Speichern Sie den Projektstand. Prüfen Sie, ob alle relevanten Änderungen gespeichert und die nötigen Dateien im Projekt enthalten sind.
- Starten Sie die richtige App. Öffnen Sie nicht versehentlich weiterhin Expo Go, wenn Sie einen Development Build testen wollen.
- Prüfen Sie den nativen Aufruf. Führen Sie genau die Funktion aus, die zuvor das fehlende Modul gemeldet hat. Achten Sie darauf, ob die erwartete Funktion in der App tatsächlich verfügbar ist.
- Testen Sie eine JavaScript-Änderung. Ändern Sie einen sichtbaren Text oder eine einfache Projektfunktion. Damit prüfen Sie, ob Ihre Entwicklungs-App mit dem aktuellen Quellcode arbeitet.
- Gleichen Sie Gerät und Build ab. Ein Build für den Simulator gehört in den Simulator; ein Build für ein physisches Gerät muss auf dem passenden Gerät getestet werden. Prüfen Sie die Build-Anweisungen in der Expo-Anleitung zum Simulator.
- Vergleichen Sie das Ergebnis mit der Kursaufgabe. Wenn die Aufgabe einen Simulator-Screenshot oder eine Xcode-Prüfung verlangt, reicht ein erfolgreicher Cloud-Build nicht als Abnahme.
- Sichern Sie Änderungen und Zugänge. Bewahren Sie Projektdateien an einem privaten, geeigneten Ort auf. Entfernen Sie Testzugänge oder nicht mehr benötigte Geheimnisse aus dem Arbeitsablauf.
Wenn Ihr bisheriger Weg aus wiederholter Expo-Go-Installation, Versuchen mit ungeprüften Workarounds und einem nicht verfügbaren Schulcomputer besteht, kostet er vor allem Zeit und liefert keine Simulatorprüfung. Ein Mac-Kauf kann für eine einzelne Kursaufgabe aber möglicherweise zu viel sein. Wenn Sie nur für Xcode oder den iOS-Simulator vorübergehend macOS benötigen, können Sie statt eines Kaufs eine zeitlich begrenzte Remote-Mac-Nutzung bei MACCOME prüfen. Wählen Sie diesen Weg nur, wenn Ihre Projektdateien, Verbindung und Kursanforderungen dazu passen; für JavaScript-Übungen ohne native Abhängigkeiten genügt Ihr vorhandener Rechner.