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"?

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.


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

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;)


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 ios-deploy@x.x.x 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

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


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.


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 '

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.