ตอบสนองพื้นเมืองเปลี่ยนอุปกรณ์ iOS จำลองเริ่มต้น


158

เมื่อฉันเรียกใช้คำสั่งนี้:

react-native run-ios

แอพของฉันทำงานตามค่าเริ่มต้นในอุปกรณ์จำลองการ iPhone6:

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

ฉันจะให้แอพทำงานในอุปกรณ์จำลองต่าง ๆ (เช่น iPhone5s) โดยค่าเริ่มต้นได้อย่างไร


Xcode -> ผลิตภัณฑ์ -> ปลายทาง ??
zipzit

2
ฉันไม่ทราบวิธีการตั้งค่าอุปกรณ์เริ่มต้น แต่หลังจากทำงานreact-native run-iosคุณสามารถเปลี่ยนอุปกรณ์Simulator > Hardware > Device > iOS x.x > iPhone 5ได้ สิ่งนี้จะทำงานจนกว่าคุณจะออกจากโปรแกรมจำลอง
sealskej

คำตอบ:


396

ระบุการจำลองโดยใช้การ--simulatorตั้งค่าสถานะ

อุปกรณ์เหล่านี้เป็นอุปกรณ์สำหรับ iOS 12.0 เป็นต้นไป:

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

แสดงรายการอุปกรณ์ iOS ที่มีอยู่ทั้งหมด:

xcrun simctl list devices

ขณะนี้ไม่มีวิธีตั้งค่าเริ่มต้น

React Native Docs: Running On Simulator


ขอบคุณมากมันช่วย
Lakshaya Maheshwari

2
และถ้าคุณต้องการ; react-native run-ios --simulator="iPad Air"
Burak Tokak

22
หากต้องการดูอุปกรณ์ที่มีอยู่ทั้งหมดคุณสามารถใช้xcrun simctl list devicesข้อมูลเพิ่มเติมได้ที่นี่
robd

1
ในกรณีที่คุณมีตัวจำลองหลายตัวที่มีชื่อเดียวกันตัวอย่างเช่น iPhone 6s สำหรับ ios 11, iPhone 6s สำหรับ ios 12 เป็นต้นคุณสามารถตั้งชื่อเฉพาะให้จำลองจาก Xcode -> หน้าต่าง -> อุปกรณ์และเครื่องจำลอง
Chirag Purohit

ทำไมต้องเป็น "iPad Pro" หลายตัว
kojow7

48

คุณยังสามารถใช้npmสำหรับสิ่งนี้ได้โดยเพิ่มรายการในscriptsองค์ประกอบของpackage.jsonไฟล์ของคุณ เช่น

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

จากนั้นให้ใช้สิ่งนี้: npm run launch-ios


3
IMHO นี่เป็นคำตอบที่ดีที่สุดเพราะช่วยให้คุณสามารถเก็บการตั้งค่าในการควบคุมรหัส / เวอร์ชั่น หมายความว่าคุณไม่จำเป็นต้องจำไวยากรณ์บรรทัดคำสั่ง
Nick

1
ฉันเห็นด้วยกับคำตอบนี้ นอกจากนี้คุณยังสามารถไปกับ singlequotes: "launch-ios": "react-native run-ios --simulator 'iPad Air 2'"
lfkwtz

24

มีการตั้งค่าโครงการหากคุณตามล่า:

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

ภายในมีตัวเลือกบางอย่างภายใต้การmodule.exportsรวมถึง:

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

Mine เป็นบรรทัด 231 เพียงตั้งค่าให้เป็นเครื่องมือจำลองการติดตั้งที่ถูกต้องและเรียกใช้ react-native run-iosมันจะเรียกใช้เครื่องมือจำลองนั้นตามค่าเริ่มต้น


5
ใช้งานได้จริงแม้ว่าไฟล์จะถูกซ่อนไว้ใน {project} / node_modules / react-native / local-cli / runIOS /
Matej Ukmar

ทางออกที่ดี ขอบคุณ!
Ahmet Ardal

จริง ๆ แล้วฉันไม่มีโมดูลนั้นภายใต้โฟลเดอร์โมดูลโหนด
Abdul Sadik Yalcin

1
ใช่เพิ่ม"runArguments": [ "--simulator", "iPhone 5s" ]การกำหนดค่าการเปิดตัวของฉันทำงานได้อย่างสมบูรณ์
สามารถPoyrazoğlu

22

คุณสามารถสร้างนามแฝงได้ที่~/.bash_profileไฟล์ของคุณ:

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

จากนั้นเรียกใช้ react-native โดยใช้นามแฝงที่สร้างขึ้น:

$ rn-ios


15

1) เปลี่ยนชื่อเครื่องจำลองของคุณหากเครื่องจำลองที่มีชื่อเหมือนกัน แต่ใช้ iOS เวอร์ชันอื่น

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

ป้อนคำอธิบายรูปภาพที่นี่

2) เปิดโฟลเดอร์โปรเจคตอบโต้ของคุณ

3) แก้ไข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


5

ตอบโดย Ian L ฉันยังใช้ NPM เพื่อจัดการสคริปต์ของฉัน

ตัวอย่าง:

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

ด้วยวิธีนี้ฉันจะได้รับสิ่งที่ต้องการอย่างรวดเร็ว:

  1. รายการอุปกรณ์ทั้งหมด: npm run devices
  2. เรียกใช้โปรแกรมจำลองเริ่มต้น: npm run ios

3

นี่คือเส้นทางใหม่สำหรับการเปลี่ยนเครื่องมือจำลอง iOS ที่คุณต้องเปลี่ยน

default: 'iPhone 6' or something else 

เส้นทาง:

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


0

ฉันมีปัญหากับ XCode 10.2 ระบุหมายเลขเวอร์ชั่นจำลอง iOS ที่ถูกต้องดังนั้นใช้:

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

0

หากคุณต้องการเปลี่ยนอุปกรณ์เริ่มต้นและต้องเรียกใช้ react-native run-ios เท่านั้นคุณสามารถค้นหาคำหลัก "runios" จากนั้นเปิดโฟลเดอร์และแก้ไขไฟล์ index.js เปลี่ยน 'iphone X' เป็นอุปกรณ์ที่ต้องการ

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


0

รับรายการอุปกรณ์ด้วยคำสั่งนี้

xcrun simctl list devices

ปลอบใจ

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

เลือกสตริงเครื่องมือจำลองที่ไม่มี ID ที่นี่เป็นตัวอย่าง

iPad Pro (12.9 นิ้ว) (รุ่นที่ 4)

คำสั่งสุดท้าย

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)

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

iPad

• iPad Pro (9.7 นิ้ว)

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

• iPad (รุ่นที่ 7)

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

• iPad Pro (11 นิ้ว) (รุ่นที่ 2)

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

• iPad Pro (12.9 นิ้ว) รุ่นที่ 4

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

• iPad Air (รุ่นที่ 3)

react-native run-ios --simulator="iPad Air (3rd generation)"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.