Reaktiv-native Anwendung auf iOS-Gerät direkt über die Befehlszeile ausführen?

102

Ist es möglich, eine reaktionsnative Anwendung auf einem iOS-Gerät direkt über die Befehlszeile auszuführen, wie wir es mit einem Simulator tun react-native run ios --simulator "iPhone 5s"?

Aakash Sigdel
quelle

Antworten:

228

Folgendes hat bei mir funktioniert (getestet auf React Native 0.38und 0.40):

npm install -g ios-deploy
# Run on a connected device, e.g. Max's iPhone:
react-native run-ios --device "Max's iPhone"

Wenn Sie versuchen, auszuführen run-ios, werden Sie feststellen, dass das Skript dies empfiehltnpm install -g ios-deploy wenn es nach dem Erstellen den Installationsschritt erreicht.

Während die Dokumentation zu den verschiedenen Befehlen, die react-native bietet, etwas lückenhaft ist, lohnt es sich, auf react-native / local-cli zu gehen . Dort sehen Sie alle verfügbaren Befehle und den Code, den sie ausführen. So können Sie herausfinden, welche Schalter für undokumentierte Befehle verfügbar sind.

Kamil Sarna
quelle
2
Wenn Sie so etwas sehen ios deploy does not support the following options: id, wie auf mir, läuft auf Ihrem iPhone möglicherweise die Beta-Version von iOS, und Sie müssen eine Beta-Version von Xcode verwenden. Versuchen Sie es sudo xcode-select -s /Applications/Xcode-beta.app(vorausgesetzt, Sie haben die richtige Xcode Beta-App installiert).
Paulvs
49
Für mich hat gerade react-native run-ios --devicefunktioniert und der obige Befehl hat nicht
narek
11
Wenn Sie nach dem Ausführen eine Fehlermeldung erhalten npm install -g ios-deploy, versuchen Sie es sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
Eric Wiener
5
Beachten Sie, dass Sie die mobile Anwendung in Relase-Konfiguration auf einem iOS-Gerät mit der UDID des Geräts ausführen können (möglicherweise wird eine Fehlermeldung mit der Option --device für Gerätenamen mit nicht englischen Zeichen react-native run-ios --udid XXXX --configuration Release
angezeigt
7
Erhalten, ** INSTALLATION SUCCEEDED **aber nichts passiert auf dem Gerät ... es ist zu 100% richtig verbunden und wird von Xcode erkannt. Versuchte sowohl Hauptantwort als auch Kommentare: react-native run-ios --devicemit dem gleichen Ergebnis
Blue Bot
32

Installieren Sie zuerst die erforderliche Bibliothek global auf Ihrem Computer:

npm install -g ios-deploy

Gehen Sie zu Ihren Einstellungen auf Ihrem iPhone, um den Namen des Geräts zu finden.

Dann geben Sie Folgendes an:

react-native run-ios --device "______\'s iPhone"

Manchmal schlägt dies fehl und gibt eine Nachricht wie folgt aus:

Found Xcode project ________.xcodeproj
Could not find device with the name: "_______'s iPhone".
Choose one of the following:
______s iPhone Udid: _________

Das udid wird so verwendet:

react-native run-ios --device --udid 0412e2c230a14e23451699

Optional können Sie verwenden:

react-native run-ios --device --udid 0412e2c230a14e23451699 -- configuration Release
jasonleonhard
quelle
Wie erhalten Sie die Geräte-ID?
Santialur
1
ios-deploy -c # wenn Ihr Gerät angeschlossen ist
jasonleonhard
1
für mich hat sudo npm install -g ios-deploy --unsafe-perm=truegearbeitet.
Jay Mayu
Eingabegerät zu usb-> Xcode-> Fenster-> Geräte und Simulatoren-> Kennung dies ist uuid (udid)
Giang
@jasonleonhard Wie funktioniert es ios-deploy -c, es ist kein Kommandozeilen-Tool? soll es sein yarn/npm ios-deploy -coder so, denn das hat auch nicht funktioniert
Sam
11

Führen Sie diesen Befehl im Projektstammverzeichnis aus.

1>. Liste der iPhone-Geräte für die gefundenen Real Devices und Simulator gefunden. das gleiche wie adb Geräte Befehl für Android.

xcrun instruments -s devices

2>. Wählen Sie mit diesem Befehl das Gerät aus, mit dem Sie Ihre App ausführen möchten

Gerätenamen verwenden

react-native run-ios --device "Kool's iPhone"

UDID verwenden

react-native run-ios --device --udid 0412e2c2******51699

Warten Sie und beobachten Sie, wie Ihre App auf bestimmten Geräten ausgeführt wird - K00L;)

kuldip bhalodiya
quelle
1
Bei Verwendung der UDID-Methode erhalte ich den Fehler: "Fehler Die Optionen deviceund schließen udidsich gegenseitig aus"
syumaK
7

Wenn Sie diesen Fehler [email protected] preinstall: ./src/scripts/check_reqs.js && xcodebuild ...mit erhaltennpm install -g ios-deploy

Versuche dies. Für mich geht das:

  1. sudo npm uninstall -g ios-deploy
  2. brew install ios-deploy
Cedriga
quelle
4

Ich wollte nur etwas zu Kamils ​​Antwort hinzufügen

Nachdem ich die Schritte ausgeführt habe, wurde immer noch ein Fehler angezeigt.

Fehler Gerät mit folgendem Namen konnte nicht gefunden werden: ".... 's Xr"

Nach dem Entfernen von Sonderzeichen aus dem Gerätenamen (Gehen Sie zu Einstellungen -> Allgemein -> Info -> Name )

ZB: '

Es funktionierte !

Hoffe, dies wird jemandem helfen, der mit einem ähnlichen Problem konfrontiert war.

Getestet mit - react-native-cli: 2.0.1 | reaktionsnativ: 0,59,8 | VSCode 1.32 | Xcode 10.2.1 | iOS 12.3

Damitha Raveendra
quelle
Ich habe ein ähnliches Problem, weil der Apostroph tatsächlich ein einfaches einfaches Anführungszeichen mit Unicode war. Nach dem Kopieren und Einfügen des Gerätenamens aus der Geräteliste funktionierte es.
Dimitrie-Toma Furdui
0

Für den ersten Build machen Sie es bitte mit Xcode und dann wie folgt:

  1. brew install ios-deploy
  2. npx react-native run-ios --device

Der zweite Befehl führt die App auf dem ersten verbundenen Gerät aus.

AmerllicA
quelle
0

Ich habe mit mir gearbeitet

react-native run-ios --device="My’s iPhone"

Und beachten Sie, dass Ihr iPhone-Name, der Apostroph, möglicherweise anders ist. Meins benutzt das '

Js Yau
quelle