React Native Change Dispositivo simulatore iOS predefinito


158

Quando eseguo questo comando:

react-native run-ios

La mia app viene eseguita per impostazione predefinita nel dispositivo simulatore iPhone6:

Found Xcode project RN.xcodeproj
Launching iPhone 6 (9.2)...

Come posso far funzionare l'app in un dispositivo simulatore diverso (come iPhone5s) per impostazione predefinita?


Xcode -> Prodotto -> Destinazione ??
zipzit

2
Non so come configurare il dispositivo predefinito, ma dopo l'esecuzione react-native run-iospuoi cambiare il dispositivo Simulator > Hardware > Device > iOS x.x > iPhone 5. Funzionerà finché non si esce dal simulatore.
sealskej,

Risposte:


396

Specificare un simulatore usando il --simulatorflag.

Questi sono i dispositivi disponibili per iOS 12.0 in poi:

npx react-native run-ios --simulator="iPhone 5s"
npx react-native run-ios --simulator="iPhone 6"
npx react-native run-ios --simulator="iPhone 6 Plus"
npx react-native run-ios --simulator="iPhone 6s"
npx react-native run-ios --simulator="iPhone 6s Plus"
npx react-native run-ios --simulator="iPhone 7"
npx react-native run-ios --simulator="iPhone 7 Plus"
npx react-native run-ios --simulator="iPhone 8"
npx react-native run-ios --simulator="iPhone 8 Plus"
npx react-native run-ios --simulator="iPhone 11"
npx react-native run-ios --simulator="iPhone 11 Pro"
npx react-native run-ios --simulator="iPhone 11 Pro Max"
npx react-native run-ios --simulator="iPad Pro (9.7-inch)"
npx react-native run-ios --simulator="iPad (7th generation)"
npx react-native run-ios --simulator="iPad Pro (11-inch)"
npx react-native run-ios --simulator="iPad Pro (12.9-inch)"
npx react-native run-ios --simulator="iPad Air (3rd generation)"
npx react-native run-ios --simulator="iPad Pro (11-inch) (1st generation)"

Elenca tutti i dispositivi iOS disponibili:

xcrun simctl list devices

Al momento non è possibile impostare un valore predefinito.

Reagisci documenti nativi: in esecuzione sul simulatore


grazie mille ha aiutato
Lakshaya Maheshwari il

2
E se vuoi; react-native run-ios --simulator="iPad Air"
Burak Tokak,

22
Per vedere tutti i dispositivi disponibili puoi usare xcrun simctl list devicesmaggiori informazioni qui
robd

1
Nel caso in cui tu abbia un simulatore multiplo con lo stesso nome, ad esempio iPhone 6s per iOS 11, iPhone 6s per iOS 12 ecc., Puoi impostare un nome specifico per il simulatore da Xcode -> Finestra -> Dispositivi e simulatori
Chirag Purohit

Perché più "iPad Pro"?
kojow7,

48

Puoi anche usare npm per questo aggiungendo una voce scriptsall'elemento del tuo package.jsonfile. Per esempio

"launch-ios": "react-native run-ios --simulator \"iPad Air 2\""

Quindi per usare questo: npm run launch-ios


3
IMHO questa è la risposta migliore in quanto consente di memorizzare la configurazione nel controllo codice / versione. Significa che non è necessario ricordare la sintassi della riga di comando.
Nick,

1
Sono d'accordo con questa risposta. Puoi anche cavartela con le virgolette singole: "launch-ios": "react-native run-ios --simulator 'iPad Air 2'"
lfkwtz,

24

C'è un'impostazione del progetto se dai la caccia:

{project}/node_modules/react-native/local-cli/runIOS/runIOS.js

All'interno ci sono alcune opzioni module.exportstra cui:

options: [{ command: '--simulator [string]', description: 'Explicitly set simulator to use', default: 'iPhone 7', }

Il mio era la linea 231, è sufficiente impostarlo su un simulatore installato valido ed eseguirlo react-native run-iosverrà eseguito su quel simulatore per impostazione predefinita.


5
In realtà ha funzionato, sebbene il file fosse nascosto all'interno di {project} / node_modules / reazioni-nativo / local-cli / runIOS /
Matej Ukmar

Ottima soluzione Grazie!
Ahmet Ardal,

In realtà non ho quel modulo nella cartella dei moduli del nodo.
Abdul Sadik Yalcin,

1
Sì, l'aggiunta "runArguments": [ "--simulator", "iPhone 5s" ]alla mia configurazione di lancio ha funzionato perfettamente.
Can Poyrazoğlu il

22

Puoi creare un alias nel tuo ~/.bash_profilefile:

alias rn-ios="react-native run-ios --simulator \"iPhone 5s (10.0)\""

E quindi esegui reattivo nativo usando l'alias creato:

$ rn-ios


15

1) Rinomina il tuo simulatore, se simulatore con lo stesso nome ma versione iOS diversa

Xcode -> Window -> Devices and Simulators -> Simulators.

inserisci qui la descrizione dell'immagine

2) Apri la cartella del tuo progetto nativo di reazione

3) Modifica package.json

"scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest",
    "flow": "node_modules/.bin/flow",
    "start-iphone6": "react-native run-ios --simulator \"iPhone 6 11.3\""
}

4) npm run start-iphone6


5

Come ha risposto Ian L, utilizzo anche NPM per gestire i miei script.

Esempio:

{
  "scripts": {
    "ios": "react-native run-ios --simulator=\"iPad Air 2\"",
    "devices": "xcrun simctl list devices"
  }
}

In questo modo, posso ottenere rapidamente ciò di cui ho bisogno:

  1. Elenca tutti i dispositivi: npm run devices
  2. Esegui il simulatore predefinito: npm run ios

3

Ecco un nuovo percorso per cambiare il simulatore iOS che devi solo cambiare

default: 'iPhone 6' or something else 

Sentiero:

<project_root>/node_modules/@react-native-community/cli/build/commands/runIOS/runIOS.js


0

Ho avuto un problema con XCode 10.2 specificando il numero di versione corretto del simulatore iOS, quindi utilizzato:

react-native run-ios --simulator='iPhone X (com.apple.CoreSimulator.SimRuntime.iOS-12-1)'

0

Se vuoi cambiare il dispositivo predefinito e devi solo eseguire run-ios di reazione nativa, puoi cercare nel cercatore la parola chiave "runios", quindi aprire la cartella e il file index.js fisso cambia 'iphone X' sul tuo dispositivo nel bisogno.

[1]: https://i.stack.imgur.com/BCtR1.png


0

Ottieni l'elenco dei dispositivi con questo comando

xcrun simctl list devices

consolle

== Devices ==
-- iOS 13.5 --
    iPhone 6s (9981E5A5-48A8-4B48-B203-1C6E73243E83) (Shutdown) 
    iPhone 8 (FC540A6C-F374-4113-9E71-1291790C8C4C) (Shutting Down) 
    iPhone 8 Plus (CAC37462-D873-4EBB-9D71-7C6D0C915C12) (Shutdown) 
    iPhone 11 (347EFE28-9B41-4C1A-A4C3-D99B49300D8B) (Shutting Down) 
    iPhone 11 Pro (5AE964DC-201C-48C9-BFB5-4506E3A0018F) (Shutdown) 
    iPhone 11 Pro Max (48EE985A-39A6-426C-88A4-AA1E4AFA0133) (Shutdown) 
    iPhone SE (2nd generation) (48B78183-AFD7-4832-A80E-AF70844222BA) (Shutdown) 
    iPad Pro (9.7-inch) (2DEF27C4-6A18-4477-AC7F-FB31CCCB3960) (Shutdown) 
    iPad (7th generation) (36A4AF6B-1232-4BCB-B74F-226E025225E4) (Shutdown) 
    iPad Pro (11-inch) (2nd generation) (79391BD7-0E55-44C8-B1F9-AF92A1D57274) (Shutdown) 
    iPad Pro (12.9-inch) (4th generation) (ED90A31F-6B20-4A6B-9EE9-CF22C01E8793) (Shutdown) 
    iPad Air (3rd generation) (41AD1CF7-CB0D-4F18-AB1E-6F8B6261AD33) (Shutdown) 
-- tvOS 13.4 --
    Apple TV 4K (51925935-97F4-4242-902F-041F34A66B82) (Shutdown) 
-- watchOS 6.2 --
    Apple Watch Series 5 - 40mm (7C50F2E9-A52B-4E0D-8B81-A811FE995502) (Shutdown) 
    Apple Watch Series 5 - 44mm (F7D8C256-DC9F-4FDC-8E65-63275C222B87) (Shutdown) 

Seleziona la stringa del simulatore senza ID qui è un esempio.

iPad Pro (12,9 pollici) (4a generazione)

Comando finale

i phone

• iPhone 6s

react-native run-ios --simulator="iPhone 6s"

• iPhone 8

react-native run-ios --simulator="iPhone 8"

• iPhone 8 Plus

react-native run-ios --simulator="iPhone 8 Plus"

• iPhone 11

react-native run-ios --simulator="iPhone 11"

• iPhone 11 Pro

react-native run-ios --simulator="iPhone 11 Pro"

• iPhone 11 Pro max

react-native run-ios --simulator="iPhone 11 Pro Max"

• iPhone SE (2a generazione)

react-native run-ios --simulator="iPhone SE (2nd generation)"

iPad

• iPad Pro (9,7 pollici)

react-native run-ios --simulator="iPad Pro (9.7-inch)"

• iPad (7a generazione)

react-native run-ios --simulator="iPad (7th generation)"

• iPad Pro (11 pollici) (2a generazione)

react-native run-ios --simulator="iPad Pro (11-inch) (2nd generation)"

• iPad Pro (12,9 pollici) di quarta generazione

react-native run-ios --simulator="iPad Pro (12.9-inch) (4th generation)"

• iPad Air (3a generazione)

react-native run-ios --simulator="iPad Air (3rd generation)"
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.