Executar o aplicativo react-native no dispositivo iOS diretamente da linha de comando?


104

É possível executar um aplicativo nativo de reação em um dispositivo iOS diretamente da linha de comando, como fazemos no simulador react-native run ios --simulator "iPhone 5s"?

Respostas:


229

O seguinte funcionou para mim (testado em reagir nativo 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 você tentar executar run-ios, verá que o script recomenda fazer npm install -g ios-deployquando chegar à etapa de instalação após a compilação.

Embora a documentação sobre os vários comandos que o react-native oferece seja um pouco incompleta, vale a pena ir ao react-native / local-cli . Lá, você pode ver todos os comandos disponíveis e o código que eles executam - você pode, portanto, descobrir quais opções estão disponíveis para comandos não documentados.


2
Se você está vendo algo como ios deploy does not support the following options: id, talvez como eu, seu iPhone está executando a versão beta do iOS e você terá que usar uma versão beta do Xcode. Tente sudo xcode-select -s /Applications/Xcode-beta.app(supondo que você tenha o aplicativo beta Xcode correto instalado).
paulvs

50
Para mim apenas react-native run-ios --devicefuncionou e o comando acima não
funcionou

11
Se você receber um erro após a execução npm install -g ios-deploy, tente executar sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
Eric Wiener

5
Observe que você pode executar o aplicativo móvel na configuração relase em um dispositivo iOS com o UDID do dispositivo (você pode obter um erro com a opção --device para nomes de dispositivos com caracteres diferentes do inglês:react-native run-ios --udid XXXX --configuration Release
Gürol Canbek

7
recebendo, ** INSTALLATION SUCCEEDED **mas nada acontece no dispositivo ... está 100% conectado corretamente e reconhecido pelo Xcode. Tentei a resposta principal e os comentários: react-native run-ios --devicecom o mesmo resultado
Blue Bot

32

Primeiro instale a biblioteca necessária globalmente em seu computador:

npm install -g ios-deploy

Vá para as configurações do seu iPhone para encontrar o nome do dispositivo.

Em seguida, forneça abaixo como:

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

Às vezes, isso irá falhar e produzir uma mensagem como esta:

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

Esse udid é usado assim:

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

Opcionalmente, você pode usar:

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

como você consegue o ID do dispositivo?
santialur de

1
ios-deploy -c # quando seu dispositivo está conectado
jasonleonhard

1
para mim sudo npm install -g ios-deploy --unsafe-perm=truefuncionou.
Jay Mayu

dispositivo de entrada para usb-> Xcode-> Janela-> Dispositivos e Simuladores-> Identificador este é uuid (udid)
Giang

@jasonleonhard Como ios-deploy -cfunciona, não é uma ferramenta de linha de comando? é suposto ser yarn/npm ios-deploy -cou algo assim, porque também não funcionou
Sam,

12

Execute este comando no diretório raiz do projeto.

1>. Lista de dispositivos iPhone encontrados para dispositivos reais conectados e simulador. igual ao comando de dispositivos adb para Android.

xcrun instruments -s devices

2>. Selecione o dispositivo usando este comando no qual deseja executar seu aplicativo

Usando o nome do dispositivo

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

Usando UDID

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

espere e observe para executar seu aplicativo em dispositivos específicos - K00L;)


1
usando o método UDID, recebo o erro: "erro As opções devicee udidsão mutuamente exclusivas"
syumaK 01 de

7

Se você receber este erro ios-deploy@x.x.x preinstall: ./src/scripts/check_reqs.js && xcodebuild ...usandonpm install -g ios-deploy

Experimente isso. Funciona para mim:

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

4

Só queria acrescentar algo à resposta de Kamil

Depois de seguir as etapas, ainda recebo um erro,

erro Não foi possível encontrar o dispositivo com o nome: ".... 's Xr"

Depois de remover os caracteres especiais do nome do dispositivo (vá para Configurações -> Geral -> Sobre -> Nome )

Ex: '

Funcionou !

Espero que isso ajude alguém que enfrentou problemas semelhantes.

Testado com - react-native-cli: 2.0.1 | reagente nativo: 0,59,8 | VSCode 1.32 | Xcode 10.2.1 | iOS 12.3


Tive um problema semelhante porque o apóstrofo era, na verdade, uma aspa simples direita unicode. Depois de copiar e colar o nome do dispositivo da lista de dispositivos, funcionou.
Toma

1

Tenho o meu trabalhando com

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

E observe que o nome do seu iphone, o apóstrofo 'pode ser diferente. O meu está usando isso '


0

Na verdade, para a primeira compilação, faça isso com o Xcode e, em seguida, faça o seguinte:

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

O segundo comando executará o aplicativo no primeiro dispositivo conectado.

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.