เรียกใช้แอปพลิเคชันตอบสนองบนอุปกรณ์ iOS โดยตรงจากบรรทัดคำสั่งหรือไม่


108

มันเป็นไปได้ที่จะเรียกใช้โปรแกรมประยุกต์ตอบสนองพื้นเมืองบนอุปกรณ์ iOS ของคุณโดยตรงจากบรรทัดคำสั่งเหมือนที่เราทำในการจำลองด้วยreact-native run ios --simulator "iPhone 5s"?

คำตอบ:


239

สิ่งต่อไปนี้ใช้ได้ผลสำหรับฉัน (ทดสอบกับ react native 0.38และ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"

หากคุณพยายามเรียกใช้run-iosคุณจะเห็นว่าสคริปต์แนะนำให้ทำnpm install -g ios-deployเมื่อถึงขั้นตอนการติดตั้งหลังจากสร้าง

ในขณะที่เอกสารเกี่ยวกับคำสั่งต่างๆที่ตอบสนองพื้นเมืองข้อเสนอเป็นร่างเล็ก ๆ น้อย ๆ มันคุ้มค่าที่จะไปตอบสนองพื้นเมือง / ท้องถิ่น CLI ที่นั่นคุณสามารถดูคำสั่งทั้งหมดที่มีอยู่และรหัสที่เรียกใช้ - คุณสามารถคำนวณได้ว่ามีสวิตช์ใดบ้างสำหรับคำสั่งที่ไม่มีเอกสาร


2
หากคุณเห็นบางอย่างเช่นios deploy does not support the following options: idฉันอาจเป็นเหมือนฉัน iPhone ของคุณใช้ iOS เวอร์ชันเบต้าและคุณจะต้องใช้ Xcode เวอร์ชันเบต้า ลองsudo xcode-select -s /Applications/Xcode-beta.app(สมมติว่าคุณติดตั้งแอป Xcode beta ที่ถูกต้อง)
paulvs

53
สำหรับฉันเพิ่งใช้react-native run-ios --deviceงานได้และคำสั่งข้างต้นไม่ได้
narek

11
หากคุณได้รับข้อผิดพลาดหลังจากทำงานnpm install -g ios-deployให้ลองเรียกใช้ sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
Eric Wiener

5
โปรดทราบว่าคุณสามารถเรียกใช้แอปพลิเคชันมือถือในการกำหนดค่า relase บนอุปกรณ์ iOS ด้วย UDID ของอุปกรณ์ (คุณอาจได้รับข้อผิดพลาดเกี่ยวกับ - ตัวเลือกอุปกรณ์สำหรับชื่ออุปกรณ์ที่มีอักขระที่ไม่ใช่ภาษาอังกฤษ:react-native run-ios --udid XXXX --configuration Release
Gürol Canbek

7
รับ** INSTALLATION SUCCEEDED **แต่ไม่มีอะไรเกิดขึ้นบนอุปกรณ์ ... เชื่อมต่ออย่างถูกต้อง 100% และรับรู้โดย Xcode พยายามทั้งคำตอบหลักและความคิดเห็น: react-native run-ios --deviceด้วยผลลัพธ์เดียวกัน
Blue Bot

37

ขั้นแรกให้ติดตั้งไลบรารีที่ต้องการทั่วโลกบนคอมพิวเตอร์ของคุณ:

npm install -g ios-deploy

ไปที่การตั้งค่าของคุณบน iPhone เพื่อค้นหาชื่ออุปกรณ์

จากนั้นระบุด้านล่างเช่น:

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

บางครั้งสิ่งนี้จะล้มเหลวและส่งออกข้อความดังนี้:

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

udid นั้นใช้ในลักษณะนี้:

react-native run-ios --udid 0412e2c230a14e23451699

คุณสามารถเลือกใช้:

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

คุณจะรับรหัสอุปกรณ์ได้อย่างไร
santialur

1
ios-deploy -c # เมื่อเสียบอุปกรณ์ของคุณ
jasonleonhard

1
สำหรับฉันsudo npm install -g ios-deploy --unsafe-perm=trueทำงาน
Jay Mayu

อุปกรณ์ป้อนข้อมูลไปยัง usb-> Xcode-> Window-> อุปกรณ์และเครื่องจำลอง -> ตัวระบุนี้คือ uuid (udid)
Giang

@jasonleonhard ios-deploy -cทำงานอย่างไรไม่ใช่เครื่องมือบรรทัดคำสั่ง มันควรจะเป็นyarn/npm ios-deploy -cหรืออะไรบางอย่างสาเหตุที่ไม่ได้ผล
แซม

17

รันคำสั่งนี้ในไดเร็กทอรี root ของโปรเจ็กต์

1>. รายชื่ออุปกรณ์ iPhone ที่พบอุปกรณ์จริงและเครื่องจำลองที่เชื่อมต่อ เช่นเดียวกับคำสั่ง adb devices สำหรับ Android

xcrun instruments -s devices

2>. เลือกอุปกรณ์โดยใช้คำสั่งนี้ที่คุณต้องการเรียกใช้แอพของคุณ

ใช้ชื่ออุปกรณ์

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

ใช้ UDID

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

รอและดูเพื่อเรียกใช้แอปของคุณในอุปกรณ์เฉพาะ - K00L;)


2
โดยใช้วิธี UDID ฉันได้รับข้อผิดพลาด: "ข้อผิดพลาดdeviceและudidตัวเลือกไม่สามารถใช้ร่วมกันได้"
syumaK

8

หากคุณได้รับข้อผิดพลาดนี้ios-deploy@x.x.x preinstall: ./src/scripts/check_reqs.js && xcodebuild ...โดยใช้ไฟล์npm install -g ios-deploy

ลองทำตามนี้ มันใช้ได้กับฉัน:

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

4

แค่อยากจะเพิ่มบางอย่างในคำตอบของคามิล

หลังจากทำตามขั้นตอนแล้วฉันยังคงพบข้อผิดพลาด

ข้อผิดพลาดไม่พบอุปกรณ์ที่มีชื่อ: ".... 's Xr"

หลังจากลบอักขระพิเศษออกจากชื่ออุปกรณ์ (ไปที่การตั้งค่า -> ทั่วไป -> เกี่ยวกับ -> ชื่อ )

เช่น: '

มันได้ผล!

หวังว่านี่จะช่วยคนที่ประสบปัญหาคล้าย ๆ กัน

ทดสอบด้วย - react-native-cli: 2.0.1 | ปฏิกิริยาพื้นเมือง: 0.59.8 | VSCode 1.32 | Xcode 10.2.1 | iOS 12.3


ฉันพบปัญหาที่คล้ายกันเนื่องจากเครื่องหมายวรรคตอนเป็นเครื่องหมายอัญประกาศเดี่ยวด้านขวาเดียว หลังจากคัดลอกวางชื่ออุปกรณ์จากรายการอุปกรณ์แล้วมันใช้งานได้
Toma

1

ได้ทำงานกับ

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

และสังเกตว่าชื่อ iphone ของคุณเครื่องหมายวรรคตอนอาจจะแตกต่างกัน ฉันกำลังใช้สิ่งนี้ '


0

จริงๆแล้วสำหรับบิลด์แรกโปรดใช้ Xcode จากนั้นทำตามวิธีต่อไปนี้:

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

คำสั่งที่สองจะทำงาน app บนที่แรกอุปกรณ์ที่เชื่อมต่อ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.