Phản ứng thay đổi thiết bị iOS Simulator mặc định


158

Khi tôi chạy lệnh này:

react-native run-ios

Ứng dụng của tôi chạy theo mặc định trong thiết bị giả lập iPhone6:

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

Làm cách nào để ứng dụng có thể chạy trong một thiết bị giả lập khác (như iPhone5) theo mặc định?


Xcode -> Sản phẩm -> Đích ??
zipzit

2
Tôi không biết cách thiết lập thiết bị mặc định, nhưng sau khi chạy, react-native run-iosbạn có thể thay đổi thiết bị Simulator > Hardware > Device > iOS x.x > iPhone 5. Điều này sẽ làm việc cho đến khi bạn thoát khỏi giả lập.
sealskej

Câu trả lời:


394

Chỉ định một trình giả lập bằng cách sử dụng --simulatorcờ.

Đây là những thiết bị có sẵn cho iOS 12.0 trở đi:

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

Liệt kê tất cả các thiết bị iOS có sẵn:

xcrun simctl list devices

Hiện tại không có cách nào để đặt mặc định.

React Native Docs: Running On Simulator


thnx rất nhiều nó đã giúp
Lakshaya Maheshwari

2
Và nếu bạn muốn; react-native run-ios --simulator="iPad Air"
Burak Tokak

22
Để xem tất cả các thiết bị có sẵn, bạn có thể sử dụng xcrun simctl list devicesthêm thông tin tại đây
cướp

1
Chỉ trong trường hợp nếu bạn có nhiều trình giả lập có cùng tên, ví dụ iPhone 6s cho ios 11, iPhone 6s cho ios 12, v.v., thì bạn có thể đặt tên cụ thể thành trình giả lập từ Xcode -> Window -> Thiết bị và Trình mô phỏng
Chirag Purohit

Tại sao nhiều "iPad Pro"?
kojow7

48

Bạn cũng có thể sử dụng npm cho việc này bằng cách thêm một mục vào scriptsphần tử của package.jsontệp. Ví dụ

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

Sau đó, để sử dụng này: npm run launch-ios


3
IMHO đây là câu trả lời tốt nhất vì nó cho phép bạn lưu cấu hình trong kiểm soát mã / phiên bản. Có nghĩa là bạn không cần phải nhớ cú pháp dòng lệnh.
Nick

1
Tôi đồng ý với câu trả lời này. Bạn cũng có thể nhận được bằng các câu đơn: "launch-ios": "react-native run-ios --simulator 'iPad Air 2'"
lfkwtz

24

Có một thiết lập dự án nếu bạn săn lùng:

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

Trong có một số tùy chọn bên dưới module.exportsbao gồm:

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

Của tôi là dòng 231, chỉ cần đặt nó thành một trình giả lập được cài đặt hợp lệ và chạy react-native run-iosnó sẽ chạy đến trình giả lập đó theo mặc định.


5
Điều này thực sự có hiệu quả, mặc dù tệp đã bị ẩn bên trong {project} / node_modules / Reac -igen / local-cli / runIOS /
Matej Ukmar

Giải pháp tuyệt vời. Cảm ơn!
Ahmet Ardal

Tôi thực sự không có mô-đun đó trong thư mục mô-đun nút.
Abdul Sadik Yalcin

1
Yup, thêm "runArguments": [ "--simulator", "iPhone 5s" ]vào cấu hình khởi chạy của tôi hoạt động hoàn hảo.
Có thể Poyrazolu

22

Bạn có thể tạo bí danh tại ~/.bash_profiletệp của mình :

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

Và sau đó chạy Reac -igen bằng cách sử dụng bí danh đã tạo:

$ rn-ios


15

1) Đổi tên trình giả lập của bạn, Nếu trình giả lập có cùng tên nhưng phiên bản iOS khác

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

nhập mô tả hình ảnh ở đây

2) Mở thư mục dự án gốc phản ứng của bạn

3) Chỉnh sửa gói.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


5

Theo trả lời của Ian L, tôi cũng sử dụng NPM để quản lý các tập lệnh của mình.

Thí dụ:

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

Bằng cách này, tôi có thể nhanh chóng có được những gì tôi cần:

  1. Liệt kê tất cả các thiết bị: npm run devices
  2. Chạy trình giả lập mặc định: npm run ios

3

Đây là đường dẫn mới để thay đổi trình giả lập iOS, bạn chỉ cần thay đổi

default: 'iPhone 6' or something else 

Con đường:

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


0

Tôi gặp sự cố với XCode 10.2 khi chỉ định số phiên bản giả lập iOS chính xác, nên đã sử dụng:

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

0

Nếu bạn muốn thay đổi thiết bị mặc định và chỉ phải chạy run-ios bản gốc, bạn có thể tìm kiếm trong công cụ tìm từ khóa "runios", sau đó mở thư mục và sửa tệp index.js thay đổi 'iphone X' sang thiết bị của bạn.

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


0

Nhận danh sách thiết bị với lệnh này

xcrun simctl list devices

Bảng điều khiển

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

Chọn chuỗi Simulator không có ID ở đây là một ví dụ.

iPad Pro (12,9 inch) (thế hệ thứ 4)

Lệnh cuối cùng

điện thoại 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 (thế hệ 2)

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

iPad

• iPad Pro (9,7 inch)

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

• iPad (thế hệ thứ 7)

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

• iPad Pro (11 inch) (thế hệ 2)

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

• iPad Pro (12,9 inch) thế hệ thứ 4

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

• iPad Air (thế hệ thứ 3)

react-native run-ios --simulator="iPad Air (3rd generation)"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.