Eseguire l'applicazione reattiva nativa sul dispositivo iOS direttamente dalla riga di comando?


104

È possibile eseguire un'applicazione reattiva nativa su un dispositivo iOS direttamente dalla riga di comando come facciamo sul simulatore con react-native run ios --simulator "iPhone 5s"?

Risposte:


229

Quanto segue ha funzionato per me (testato su react native 0.38e 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"

Se provi a eseguire run-ios, vedrai che lo script consiglia di fare npm install -g ios-deployquando raggiunge la fase di installazione dopo la costruzione.

Anche se la documentazione sui vari comandi che offre react-native è un po 'approssimativa, vale la pena andare a react-native / local-cli . Qui puoi vedere tutti i comandi disponibili e il codice che eseguono: puoi così capire quali opzioni sono disponibili per i comandi non documentati.


2
Se vedi qualcosa del genere ios deploy does not support the following options: id, forse come me il tuo iPhone esegue la versione beta di iOS e dovrai utilizzare una versione beta di Xcode. Prova sudo xcode-select -s /Applications/Xcode-beta.app(supponendo che tu abbia installato l'app Xcode beta corretta).
paulvs

50
Per me ha react-native run-ios --devicefunzionato e il comando sopra non ha funzionato
narek

11
Se ricevi un errore dopo l'esecuzione npm install -g ios-deploy, prova a correre sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
Eric Wiener,

5
Tieni presente che puoi eseguire l'applicazione mobile nella configurazione relase su un dispositivo iOS con l'UDID del dispositivo (potresti ricevere un errore con l'opzione --device per i nomi dei dispositivi con caratteri non inglesi:react-native run-ios --udid XXXX --configuration Release
Gürol Canbek

7
ottenere ** INSTALLATION SUCCEEDED **ma non succede nulla sul dispositivo ... è collegato correttamente al 100% e riconosciuto da Xcode. Ho provato sia la risposta principale che i commenti: react-native run-ios --devicecon lo stesso risultato
Blue Bot

32

Prima installa la libreria richiesta a livello globale sul tuo computer:

npm install -g ios-deploy

Vai alle tue impostazioni sul tuo iPhone per trovare il nome del dispositivo.

Quindi fornisci quello di seguito come:

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

A volte questo fallirà e produrrà un messaggio come questo:

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

Quell'udid è usato in questo modo:

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

Opzionalmente puoi usare:

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

come si ottiene l'ID del dispositivo?
santialur

1
ios-deploy -c # quando il dispositivo è collegato
jasonleonhard

1
per me ha sudo npm install -g ios-deploy --unsafe-perm=truefunzionato.
Jay Mayu

dispositivo di input su usb-> Xcode-> Finestra-> Dispositivi e simulatori-> Identificatore questo è uuid (udid)
Giang

@jasonleonhard Come ios-deploy -cfunziona, non è uno strumento da riga di comando? dovrebbe essere yarn/npm ios-deploy -co qualcosa del genere, perché neanche quello ha funzionato
Sam

12

Esegui questo comando nella directory principale del progetto.

1>. Elenco dei dispositivi iPhone per i dispositivi reali e il simulatore collegati. uguale al comando dei dispositivi adb per Android.

xcrun instruments -s devices

2>. Seleziona il dispositivo utilizzando questo comando su cui desideri eseguire l'app

Utilizzo del nome del dispositivo

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

Utilizzando UDID

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

aspetta e guarda per eseguire la tua app su dispositivi specifici - K00L;)


1
utilizzando il metodo UDID, ottengo l'errore: "errore Le opzioni devicee udidsi escludono a vicenda"
syumaK

7

Se ricevi questo errore ios-deploy@x.x.x preinstall: ./src/scripts/check_reqs.js && xcodebuild ...usandonpm install -g ios-deploy

Prova questo. Per me funziona:

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

4

Volevo solo aggiungere qualcosa alla risposta di Kamil

Dopo aver seguito i passaggi, ho ancora ricevuto un errore,

errore Impossibile trovare il dispositivo con il nome: ".... 's Xr"

Dopo aver rimosso i caratteri speciali dal nome del dispositivo (vai su Impostazioni -> Generali -> Informazioni -> Nome )

Ad esempio: '

Ha funzionato !

Spero che questo possa aiutare qualcuno che ha affrontato un problema simile.

Testato con - react-native-cli: 2.0.1 | nativo di reazione: 0,59,8 | VSCode 1.32 | Xcode 10.2.1 | iOS 12.3


Ho avuto un problema simile perché l'apostrofo era in realtà una virgoletta singola destra Unicode. Dopo aver copiato e incollato il nome del dispositivo dall'elenco dei dispositivi, ha funzionato.
Toma

1

Ho il mio lavoro con

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

E nota che il nome del tuo iphone, l'apostrofo potrebbe essere diverso. Il mio sta usando questo '


0

In realtà, per la prima build, fallo con Xcode e poi procedi nel modo seguente:

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

Il secondo comando eseguirà l'app sul primo dispositivo connesso.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.