React Native Change Dispositivo de simulador de iOS predeterminado

158

Cuando ejecuto este comando:

react-native run-ios

Mi aplicación se ejecuta por defecto en el dispositivo simulador iPhone6:

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

¿Cómo puedo hacer que la aplicación se ejecute en un dispositivo simulador diferente (como iPhone5s) de forma predeterminada?

Wonka
fuente
Xcode -> Producto -> Destino ??
zipzit
2
No sé cómo configurar el dispositivo predeterminado, pero después de ejecutarlo react-native run-iospuede cambiar el dispositivo Simulator > Hardware > Device > iOS x.x > iPhone 5. Esto funcionará hasta que salga del simulador.
sealskej

Respuestas:

395

Especifique un simulador usando la --simulatorbandera.

Estos son los dispositivos disponibles para iOS 12.0 en adelante:

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

Enumere todos los dispositivos iOS disponibles:

xcrun simctl list devices

Actualmente no hay forma de establecer un valor predeterminado.

Reaccionar documentos nativos: ejecución en simulador

Daniel Basedow
fuente
gracias mucho ayudó
Lakshaya Maheshwari
2
Y si tu quieres; react-native run-ios --simulator="iPad Air"
Burak Tokak
22
Para ver todos los dispositivos disponibles, puede usar xcrun simctl list devicesmás información aquí
robe el
1
En caso de que tenga un simulador múltiple con el mismo nombre, por ejemplo, iPhone 6s para ios 11, iPhone 6s para ios 12, etc., puede establecer un nombre específico para el simulador desde Xcode -> Ventana -> Dispositivos y simuladores
Chirag Purohit
¿Por qué múltiples "iPad Pro" s?
kojow7
48

También puede usar npm para esto agregando una entrada al scriptselemento de su package.jsonarchivo. P.ej

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

Entonces para usar esto: npm run launch-ios

Ian L
fuente
3
En mi humilde opinión, esta es la mejor respuesta, ya que le permite almacenar la configuración en el control de código / versión. Significa que no necesita recordar la sintaxis de la línea de comandos.
Nick
1
Estoy de acuerdo con esta respuesta También puede sobrevivir con comillas simples: "launch-ios": "react-native run-ios --simulator 'iPad Air 2'"
lfkwtz
24

Hay una configuración de proyecto si caza:

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

Dentro hay algunas opciones que module.exportsincluyen:

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

El mío era la línea 231, simplemente configúrelo en un simulador instalado válido y react-native run-iosejecútelo en ese simulador de forma predeterminada.

svarrall
fuente
55
Esto realmente funcionó, aunque el archivo estaba oculto dentro de {project} / node_modules / react-native / local-cli / runIOS /
Matej Ukmar
Gran solución ¡Gracias!
Ahmet Ardal
En realidad no tengo ese módulo en la carpeta de módulos de nodo.
Abdul Sadik Yalcin
1
Sí, agregar "runArguments": [ "--simulator", "iPhone 5s" ]a mi configuración de lanzamiento funcionó perfectamente.
Can Poyrazoğlu
22

Puede crear un alias en su ~/.bash_profilearchivo:

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

Y luego ejecute react-native con el alias creado:

$ rn-ios

Bruno Lemos
fuente
15

1) Cambie el nombre de su simulador, si es un simulador con el mismo nombre pero diferente versión de iOS

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

ingrese la descripción de la imagen aquí

2) Abra su carpeta de proyecto nativo Reaccionar

3) Editar 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

Lijith Vipin
fuente
5

Como respondió Ian L, también uso NPM para administrar mis scripts.

Ejemplo:

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

De esta manera, puedo obtener rápidamente lo que necesito:

  1. Listar todos los dispositivos: npm run devices
  2. Ejecute el simulador predeterminado: npm run ios
Khairul Anwar
fuente
3

Aquí hay una nueva ruta para cambiar el simulador de iOS que solo necesita cambiar

default: 'iPhone 6' or something else 

Camino:

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

Tuve un problema con XCode 10.2 que especifica el número de versión correcto del simulador de iOS, así que utilicé:

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

Si desea cambiar el dispositivo predeterminado y solo tiene que ejecutar react-native run-ios, puede buscar en el buscador la palabra clave "runios" y luego abrir la carpeta y el archivo fijo index.js cambie 'iphone X' a su dispositivo que lo necesite.

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

Thao Le
fuente
0

Obtenga la lista de dispositivos con este comando

xcrun simctl list devices

Consola

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

Seleccione la cadena del simulador sin ID aquí es un ejemplo.

iPad Pro (12.9 pulgadas) (cuarta generación)

Comando final

iPhone

• 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 (2da generación)

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

iPad

• iPad Pro (9.7 pulgadas)

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

• iPad (7ma generación)

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

• iPad Pro (11 pulgadas) (2da generación)

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

• iPad Pro (12.9 pulgadas) de cuarta generación

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

• iPad Air (3ra generación)

react-native run-ios --simulator="iPad Air (3rd generation)"
Vivek
fuente