React Native Zmień domyślne urządzenie symulatora iOS

158

Kiedy uruchamiam to polecenie:

react-native run-ios

Moja aplikacja działa domyślnie na urządzeniu symulującym iPhone6:

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

Jak mogę domyślnie uruchomić aplikację na innym urządzeniu symulującym (takim jak iPhone5s)?

Wonka
źródło
Xcode -> Produkt -> Miejsce docelowe ??
zipzit
2
Nie wiem, jak ustawić domyślne urządzenie, ale po uruchomieniu react-native run-iosmożesz zmienić urządzenie w Simulator > Hardware > Device > iOS x.x > iPhone 5. Będzie to działać, dopóki nie wyjdziesz z symulatora.
sealskej

Odpowiedzi:

396

Określ symulator za pomocą --simulatorflagi.

Oto dostępne urządzenia dla iOS 12.0 i nowszych:

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

Lista wszystkich dostępnych urządzeń iOS:

xcrun simctl list devices

Obecnie nie ma możliwości ustawienia wartości domyślnej.

React Native Docs: Running On Simulator

Daniel Basedow
źródło
dzięki, bardzo pomogło
Lakshaya Maheshwari
2
A jeśli chcesz; react-native run-ios --simulator="iPad Air"
Burak Tokak
22
Aby zobaczyć wszystkie dostępne urządzenia, możesz użyć xcrun simctl list deviceswięcej informacji tutaj
robd
1
Na wszelki wypadek, jeśli masz wiele symulatorów o tej samej nazwie, na przykład iPhone 6s dla ios 11, iPhone 6s dla ios 12 itp., Możesz ustawić konkretną nazwę dla symulatora z Xcode -> Window -> Devices and Simulators
Chirag Purohit
Dlaczego wiele „iPadów Pro”?
kojow7
48

Możesz również użyć do tego npm , dodając wpis do scriptselementu swojego package.jsonpliku. Na przykład

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

Następnie, aby użyć tego: npm run launch-ios

Ian L.
źródło
3
IMHO to najlepsza odpowiedź, ponieważ pozwala na przechowywanie konfiguracji w kontroli kodu / wersji. Oznacza to, że nie musisz pamiętać składni wiersza poleceń.
Nick
1
Zgadzam się z tą odpowiedzią. Możesz także przejść przez pojedyncze cytaty: "launch-ios": "react-native run-ios --simulator 'iPad Air 2'"
lfkwtz
24

Istnieje ustawienie projektu, jeśli polujesz:

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

W ramach dostępnych jest kilka opcji, w module.exportstym:

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

Mój był wiersz 231, po prostu ustaw go na prawidłowy zainstalowany symulator i uruchom react-native run-iosgo, aby domyślnie działał na tym symulatorze.

svarrall
źródło
5
To faktycznie zadziałało, chociaż plik został ukryty w {projekt} / node_modules / respons-native / local-cli / runIOS /
Matej Ukmar
Świetne rozwiązanie. Dzięki!
Ahmet Ardal,
W rzeczywistości nie mam tego modułu w folderze modułów węzłów.
Abdul Sadik Yalcin
1
Tak, dodanie "runArguments": [ "--simulator", "iPhone 5s" ]do mojej konfiguracji uruchamiania działało idealnie.
Can Poyrazoğlu
22

Możesz utworzyć alias w swoim ~/.bash_profilepliku:

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

A następnie uruchom responsywność, używając utworzonego aliasu:

$ rn-ios

Bruno Lemos
źródło
15

1) Zmień nazwę symulatora, jeśli symulator ma tę samą nazwę, ale inną wersję iOS

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

wprowadź opis obrazu tutaj

2) Otwórz swój macierzysty folder projektu React

3) Edytuj plik 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

Lijith Vipin
źródło
5

Jak odpowiedział Ian L., używam również NPM do zarządzania moimi skryptami.

Przykład:

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

W ten sposób mogę szybko uzyskać to, czego potrzebuję:

  1. Lista wszystkich urządzeń: npm run devices
  2. Uruchom domyślny symulator: npm run ios
Khairul Anwar
źródło
3

Oto nowa ścieżka do zmiany symulatora iOS, który wystarczy zmienić

default: 'iPhone 6' or something else 

Ścieżka:

<project_root>/node_modules/@react-native-community/cli/build/commands/runIOS/runIOS.js
Tanveerbyn
źródło
0

Miałem problem z XCode 10.2 określającym poprawny numer wersji symulatora iOS, więc użyłem:

react-native run-ios --simulator='iPhone X (com.apple.CoreSimulator.SimRuntime.iOS-12-1)'
FinHead
źródło
0

Jeśli chcesz zmienić domyślne urządzenie i musisz uruchomić tylko natywne run-ios, możesz wyszukać w wyszukiwarce słowo kluczowe "runios", a następnie otworzyć folder i naprawić plik index.js, aby zmienić 'iphone X' na twoje urządzenie, którego potrzebujesz.

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

Thao Le
źródło
0

Pobierz listę urządzeń za pomocą tego polecenia

xcrun simctl list devices

Konsola

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

Wybierz ciąg Simulator bez identyfikatora tutaj jest przykładem.

iPad Pro (12,9 cala) (4. generacji)

Ostateczna komenda

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. generacji)

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

iPad

• iPad Pro (9,7 cala)

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

• iPad (7. generacji)

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

• iPad Pro (11-calowy) (2. generacji)

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

• iPad Pro (12,9 cala) 4. generacji

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

• iPad Air (3. generacji)

react-native run-ios --simulator="iPad Air (3rd generation)"
Vivek
źródło