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?


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


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


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.


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


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


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

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


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

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


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)"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.