Bereaksi Asli Ubah Perangkat iOS Simulator Default

158

Ketika saya menjalankan perintah ini:

react-native run-ios

Aplikasi saya berjalan secara default di perangkat simulator iPhone6:

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

Bagaimana saya bisa menjalankan aplikasi di perangkat simulator yang berbeda (seperti iPhone5s) secara default?

Wonka
sumber
Xcode -> Produk -> Tujuan ??
zipzit
2
Saya tidak tahu cara mengatur perangkat default, tetapi setelah menjalankan react-native run-iosAnda dapat mengubah perangkat Simulator > Hardware > Device > iOS x.x > iPhone 5. Ini akan bekerja sampai Anda keluar dari simulator.
sealskej

Jawaban:

394

Tentukan simulator menggunakan --simulatorbendera.

Ini adalah perangkat yang tersedia untuk iOS 12.0 dan seterusnya:

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

Daftar semua perangkat iOS yang tersedia:

xcrun simctl list devices

Saat ini tidak ada cara untuk menetapkan default.

Bereaksi Dokumen Asli: Berjalan Di Simulator

Daniel Basedow
sumber
Terima kasih banyak
Lakshaya Maheshwari
2
Dan jika Anda mau; react-native run-ios --simulator="iPad Air"
Burak Tokak
22
Untuk melihat semua perangkat yang tersedia, Anda dapat menggunakan xcrun simctl list devicesinfo lebih lanjut di sini
robd
1
Untuk jaga-jaga jika Anda memiliki beberapa simulator dengan nama yang sama misalnya iPhone 6s untuk ios 11, iPhone 6s untuk ios 12 dll, maka Anda dapat mengatur nama spesifik untuk simulator dari Xcode -> Window -> Perangkat dan Simulator
Chirag Purohit
Mengapa banyak "iPad Pro"?
kojow7
48

Anda juga dapat menggunakan npm untuk ini dengan menambahkan entri ke scriptselemen package.jsonfile Anda . Misalnya

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

Kemudian gunakan ini: npm run launch-ios

Ian L.
sumber
3
IMHO ini adalah jawaban terbaik karena memungkinkan Anda untuk menyimpan konfigurasi kode / kontrol versi. Berarti Anda tidak perlu mengingat sintaks baris perintah.
Nick
1
Saya setuju dengan jawaban ini. Anda juga dapat bertahan dengan singlequotes: "launch-ios": "react-native run-ios --simulator 'iPad Air 2'"
lfkwtz
24

Ada pengaturan proyek jika Anda memburu:

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

Di dalam ada beberapa opsi di bawah module.exportstermasuk:

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

Milik saya adalah baris 231, cukup atur itu ke simulator terpasang yang valid dan jalankan react-native run-iositu akan berjalan ke simulator itu secara default.

svarrall
sumber
5
Ini benar-benar bekerja, meskipun file disembunyikan di dalam {project} / node_modules / react-native / local-cli / runIOS /
Matej Ukmar
Solusi bagus Terima kasih!
Ahmet Ardal
Saya tidak benar-benar memiliki modul di bawah folder modul simpul.
Abdul Sadik Yalcin
1
Yup, menambah "runArguments": [ "--simulator", "iPhone 5s" ]konfigurasi peluncuran saya bekerja dengan sempurna.
Can Poyrazoğlu
22

Anda dapat membuat alias di ~/.bash_profilefile Anda :

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

Dan kemudian jalankan reaksi asli menggunakan alias yang dibuat:

$ rn-ios

Bruno Lemos
sumber
15

1) Ubah nama simulator Anda, Jika simulator dengan nama yang sama tetapi versi iOS yang berbeda

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

masukkan deskripsi gambar di sini

2) Buka folder proyek asli reaksi Anda

3) Edit 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
sumber
5

Seperti yang dijawab oleh Ian L, saya juga menggunakan NPM untuk mengelola skrip saya.

Contoh:

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

Dengan cara ini, saya dapat dengan cepat mendapatkan apa yang saya butuhkan:

  1. Daftar semua perangkat: npm run devices
  2. Jalankan simulator default: npm run ios
Khairul Anwar
sumber
3

Ini adalah jalur baru untuk mengubah simulator iOS yang hanya perlu Anda ubah

default: 'iPhone 6' or something else 

Path:

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

Saya memiliki masalah dengan XCode 10.2 yang menentukan nomor versi simulator iOS yang benar, sehingga digunakan:

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

Jika Anda ingin mengubah perangkat default dan hanya perlu menjalankan react-native run-ios Anda dapat mencari di finder untuk kata kunci "runios" kemudian buka folder dan perbaiki file index.js 'iphone X' ke perangkat Anda yang membutuhkan.

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

Thao Le
sumber
0

Dapatkan daftar perangkat dengan perintah ini

xcrun simctl list devices

Menghibur

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

Pilih string Simulator tanpa ID di sini adalah contohnya.

iPad Pro (12,9 inci) (generasi ke-4)

Perintah terakhir

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 (generasi ke-2)

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

iPad

• iPad Pro (9,7 inci)

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

• iPad (generasi ke-7)

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

• iPad Pro (11-inci) (generasi ke-2)

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

• iPad Pro (12,9 inci) generasi ke-4

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

• iPad Air (generasi ke-3)

react-native run-ios --simulator="iPad Air (3rd generation)"
Vivek
sumber