Reagir dispositivo nativo do simulador iOS de alteração nativa


158

Quando executo este comando:

react-native run-ios

Meu aplicativo é executado por padrão no dispositivo simulador iPhone6:

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

Como posso executar o aplicativo em um dispositivo simulador diferente (como iPhone5s) por padrão?


Xcode -> Produto -> Destino ??
Zipzit 19/05/19

2
Não sei como configurar o dispositivo padrão, mas após a execução react-native run-iosvocê pode alterar o dispositivo Simulator > Hardware > Device > iOS x.x > iPhone 5. Isso funcionará até você sair do simulador.
precisa saber é o seguinte

Respostas:


394

Especifique um simulador usando a --simulatorbandeira.

Estes são os dispositivos disponíveis para o iOS 12.0 em diante:

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

Listar todos os dispositivos iOS disponíveis:

xcrun simctl list devices

No momento, não há como definir um padrão.

Reagir documentos nativos: executando no simulador


thnx muito ajudou
Lakshaya Maheshwari 4/16

2
E se você quiser; react-native run-ios --simulator="iPad Air"
Burak Tokak 06/02

22
Para ver todos os dispositivos disponíveis, você pode usar xcrun simctl list devicesmais informações aqui
robd

1
Caso você tenha um simulador múltiplo com o mesmo nome, por exemplo, iPhone 6s para ios 11, iPhone 6s para ios 12 etc., você pode definir um nome específico para o simulador em Xcode -> Janela -> Dispositivos e simuladores
Chirag Purohit

Por que vários "iPad Pro"?
precisa saber é

48

Você também pode usar o npm adicionando uma entrada ao scriptselemento do seu package.jsonarquivo. Por exemplo

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

Então, para usar isso: npm run launch-ios


3
IMHO, esta é a melhor resposta, pois permite armazenar a configuração no código / controle de versão. Significa que você não precisa se lembrar da sintaxe da linha de comando.
Nick

1
Eu concordo com esta resposta. Você também pode conviver com aspas simples: "launch-ios": "react-native run-ios --simulator 'iPad Air 2'"
lfkwtz

24

Há uma configuração de projeto se você procurar:

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

Dentro, existem algumas opções em module.exportsincluindo:

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

O meu era a linha 231, basta configurá-lo para um simulador instalado válido e executá- react-native run-ioslo por padrão.


5
Isso realmente funcionou, embora arquivo foi escondido dentro {projecto} / node_modules / reagir nativo / local-cli / runIOS /
Matej Ukmar

Ótima solução. Obrigado!
Ahmet Ardal

Na verdade, eu não tenho esse módulo na pasta modules do nó.
Abdul Sadik Yalcin

1
Sim, adicionar "runArguments": [ "--simulator", "iPhone 5s" ]à minha configuração de lançamento funcionou perfeitamente.
Can Poyrazoğlu

22

Você pode criar um alias no seu ~/.bash_profilearquivo:

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

E, em seguida, execute react-native usando o alias criado:

$ rn-ios


15

1) Renomeie seu simulador, se o simulador tiver o mesmo nome, mas a versão iOS diferente

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

insira a descrição da imagem aqui

2) Abra sua pasta de projeto nativa do react

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

Conforme respondida por Ian L, também uso o NPM para gerenciar meus scripts.

Exemplo:

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

Dessa forma, posso obter rapidamente o que preciso:

  1. Listar todos os dispositivos: npm run devices
  2. Execute o simulador padrão: npm run ios

3

Aqui está um novo caminho para mudar o simulador iOS, você só precisa mudar

default: 'iPhone 6' or something else 

Caminho:

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


0

Eu tive um problema com o XCode 10.2 ao especificar o número da versão correta do simulador iOS, então usei:

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

0

Se você deseja alterar o dispositivo padrão e só precisa executar o run-ios nativo do react, você pode procurar no localizador a palavra-chave "runios" e abrir a pasta e o arquivo index.js fixo, altere 'iphone X' para o seu dispositivo em necessidade.

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


0

Obter lista de dispositivos com este comando

xcrun simctl list devices

Console

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

Selecione Simulator string sem ID, aqui está um exemplo.

iPad Pro (12,9 polegadas) (4ª geração)

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 (2ª geração)

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

iPad

• iPad Pro (9,7 polegadas)

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

• iPad (7ª geração)

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

• iPad Pro (11 polegadas) (2ª geração)

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

• iPad Pro (12,9 polegadas) 4ª geração

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

• iPad Air (3ª geração)

react-native run-ios --simulator="iPad Air (3rd generation)"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.