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

Aakash Sigdel
fonte

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.

Kamil Sarna
fonte
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
jasonleonhard
fonte
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;)

kuldip bhalodiya
fonte
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 [email protected] 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
Cedriga
fonte
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

Damitha Raveendra
fonte
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 '

Js Yau
fonte
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.

AmerllicA
fonte