Uruchomić aplikację natywną na urządzeniu z systemem iOS bezpośrednio z wiersza poleceń?


104

Czy można uruchomić aplikację React-Native na urządzeniu z systemem iOS bezpośrednio z wiersza poleceń, tak jak w symulatorze react-native run ios --simulator "iPhone 5s"?

Odpowiedzi:


230

U mnie zadziałały (przetestowane na React Native 0.38i 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"

Jeśli spróbujesz uruchomić run-ios, zobaczysz, że skrypt zaleca wykonanie, npm install -g ios-deploygdy osiągnie krok instalacji po skompilowaniu.

Chociaż dokumentacja dotycząca różnych poleceń, które reagują na oferty natywne, jest trochę szkicowa, warto jest przejść do reagowania-natywne / lokalne-cli . Tam możesz zobaczyć wszystkie dostępne polecenia i kod, który one uruchamiają - możesz w ten sposób dowiedzieć się, jakie przełączniki są dostępne dla poleceń nieudokumentowanych.


2
Jeśli widzisz coś takiego ios deploy does not support the following options: id, być może tak jak ja, Twój iPhone ma wersję beta na iOS i będziesz musiał użyć wersji beta Xcode. Spróbuj sudo xcode-select -s /Applications/Xcode-beta.app(zakładając, że masz zainstalowaną poprawną aplikację Xcode beta).
paulvs

50
U mnie po prostu react-native run-ios --devicezadziałało i powyższe polecenie nie
zadziałało

11
Jeśli po uruchomieniu pojawi się błąd npm install -g ios-deploy, spróbuj uruchomić sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
Eric Wiener

5
Zauważ, że możesz uruchomić aplikację mobilną w konfiguracji wydania na urządzeniu iOS z UDID urządzenia (możesz otrzymać błąd z opcją --device dla nazw urządzeń zawierających znaki inne niż angielskie:react-native run-ios --udid XXXX --configuration Release
Gürol Canbek

7
uzyskiwanie, ** INSTALLATION SUCCEEDED **ale nic się nie dzieje na urządzeniu ... jest w 100% prawidłowo podłączone i rozpoznawane przez Xcode. Wypróbowałem zarówno główną odpowiedź, jak i komentarze: react-native run-ios --devicez tym samym wynikiem
Blue Bot

33

Najpierw zainstaluj wymaganą bibliotekę globalnie na swoim komputerze:

npm install -g ios-deploy

Przejdź do ustawień na iPhonie, aby znaleźć nazwę urządzenia.

Następnie podaj to poniżej, na przykład:

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

Czasami kończy się to niepowodzeniem i wyświetla taki komunikat:

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

Ten udid jest używany w ten sposób:

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

Opcjonalnie możesz użyć:

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

jak uzyskać identyfikator urządzenia?
santialur

1
ios-deploy -c #, gdy urządzenie jest podłączone
jasonleonhard

1
dla mnie sudo npm install -g ios-deploy --unsafe-perm=truepracował.
Jay Mayu

urządzenie wejściowe do usb-> Xcode-> Window-> Devices and Simulators-> Identifier this is uuid (udid)
Giang

@jasonleonhard Jak ios-deploy -cdziała, to nie jest narzędzie wiersza poleceń? czy to ma być yarn/npm ios-deploy -cczy coś, bo to też nie zadziałało
Sam

12

Uruchom to polecenie w katalogu głównym projektu.

1>. Lista urządzeń iPhone dla znalezionych podłączonych urządzeń rzeczywistych i symulatora. tak samo jak polecenie urządzeń adb dla Androida.

xcrun instruments -s devices

2>. Wybierz urządzenie za pomocą tego polecenia, na którym chcesz uruchomić swoją aplikację

Korzystanie z nazwy urządzenia

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

Korzystanie z UDID

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

poczekaj i zobacz, jak uruchomisz swoją aplikację na określonych urządzeniach - K00L;)


1
używając metody UDID otrzymuję błąd: „błąd Opcje devicei udidwykluczają się wzajemnie”
syumaK

7

Jeśli pojawi się ten błąd ios-deploy@x.x.x preinstall: ./src/scripts/check_reqs.js && xcodebuild ... przy użyciunpm install -g ios-deploy

Spróbuj tego. Mi to pasuje:

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

4

Chciałem tylko dodać coś do odpowiedzi Kamila

Po wykonaniu czynności nadal pojawia się błąd,

błąd Nie można znaleźć urządzenia o nazwie: „....'s Xr”

Po usunięciu znaków specjalnych z nazwy urządzenia (przejdź do Ustawienia -> Ogólne -> Informacje -> Nazwa )

Np .:

Zadziałało !

Mam nadzieję, że pomoże to komuś, kto stanął przed podobnym problemem.

Przetestowano z - react-native-cli: 2.0.1 | reaktywny: 0,59,8 | VSCode 1.32 | Xcode 10.2.1 | iOS 12.3


Mam podobny problem, ponieważ apostrof był właściwie pojedynczym cudzysłowem w formacie Unicode. Po skopiowaniu i wklejeniu nazwy urządzenia z listy urządzeń zadziałało.
Toma

1

Moja praca z

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

Zauważ, że twoje imię i nazwisko, apostrof s 'może być inne. Mój używa tego


0

Właściwie, w przypadku pierwszej kompilacji zrób to za pomocą Xcode, a następnie wykonaj następujące czynności:

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

Drugie polecenie uruchomi aplikację na pierwszym podłączonym urządzeniu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.