ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามทดสอบแอป
ไม่สามารถใช้อุปกรณ์สร้างอย่างเดียวเพื่อเรียกใช้เป้าหมายนี้
ไม่มีอุปกรณ์ iOS ที่รองรับ เชื่อมต่ออุปกรณ์เพื่อเรียกใช้แอปพลิเคชันของคุณหรือเลือกอุปกรณ์จำลองเป็นปลายทาง
ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามทดสอบแอป
ไม่สามารถใช้อุปกรณ์สร้างอย่างเดียวเพื่อเรียกใช้เป้าหมายนี้
ไม่มีอุปกรณ์ iOS ที่รองรับ เชื่อมต่ออุปกรณ์เพื่อเรียกใช้แอปพลิเคชันของคุณหรือเลือกอุปกรณ์จำลองเป็นปลายทาง
คำตอบ:
เพิ่ม-destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
ในไฟล์xcodebuild
xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
xcodebuild
คุณไม่จำเป็นที่จะเพิ่มเข้ามาในนี้ สิ่งที่คุณต้องมีคือรันคำสั่งนี้ด้วยพารามิเตอร์
ฉันพบปัญหาที่สามารถเลือกได้เฉพาะ "อุปกรณ์ iOS ทั่วไป" เท่านั้น และเมื่อฉันเรียกใช้มันขึ้นว่า "ไม่สามารถใช้อุปกรณ์บิวด์เท่านั้นเพื่อเรียกใช้เป้าหมายนี้ไม่มีอุปกรณ์ iOS ที่รองรับเชื่อมต่ออุปกรณ์เพื่อเรียกใช้แอปพลิเคชันของคุณหรือเลือกอุปกรณ์จำลองเป็นปลายทาง"
และวิธีแก้ปัญหาของฉันคือเลือก Build Settings ---> Deployment -----> IOS Deployment Target ----> เลือกเวอร์ชันที่ต่ำกว่าเช่น 8.0
และฉันพบเครื่องจำลองออกมาและสามารถเลือกได้
คุณต้องได้รับรายชื่อจุดหมายปลายทางที่ถูกต้อง ในการดำเนินการนี้ให้ระบุคู่คีย์ - ค่าที่ผิดพลาดและ xcodebuild จะคายชุดค่าผสมที่ใช้งานได้:
แสดงรายการคำสั่งปลายทาง
xcodebuild test -destination 'platform=iOS Simulator' -workspace Register.xcworkspace -scheme ThatTestTarget
ตัวอย่างผลลัพธ์
Available destinations for the "ThatTestTarget" scheme:
{ platform:iOS Simulator, id:145A9B7E-B336-4819-8059-2FFEC408E05E, OS:11.1, name:iPad (5th generation) }
{ platform:iOS Simulator, id:69ABAF6F-ADA3-4E38-AC97-D71001447663, OS:9.3, name:iPad 2 }
{ platform:iOS Simulator, id:550E2F18-406D-4586-84BB-E48F1D704F27, OS:10.3.1, name:iPad Air }
{ platform:iOS Simulator, id:94734F1C-775F-40FA-9015-8196C08805EF, OS:11.1, name:iPad Air }
{ platform:iOS Simulator, id:1DB953DD-CD97-4EC7-8006-BCF01DF3E63F, OS:11.1, name:iPad Air 2 }
{ platform:iOS Simulator, id:DE3072DA-2E31-423D-9D77-220626F8B90A, OS:11.1, name:iPad Pro (9.7-inch) }
{ platform:iOS Simulator, id:3B5D18DB-13B5-4F28-B654-7D2ECDD1F6F0, OS:11.1, name:iPad Pro (10.5-inch) }
{ platform:iOS Simulator, id:A4225E3A-512C-4F42-ADD9-1E7E448C4D27, OS:11.1, name:iPad Pro (12.9-inch) }
{ platform:iOS Simulator, id:684FF1BA-8784-4B7C-B4E5-5231772F0FAC, OS:11.1, name:iPad Pro (12.9-inch) (2nd generation) }
เปลี่ยน Colons สำหรับ Equals Signs ลบ Spaces ละเว้น ID
ดังนั้นหากคุณต้องการใช้ปลายทางนี้:
platform:iOS Simulator, id:684FF1BA-8784-4B7C-B4E5-5231772F0FAC, OS:11.1, name:iPad Pro (12.9-inch) (2nd generation)
เปลี่ยนเครื่องหมายจุดคู่สำหรับลูกน้ำลบช่องว่างลบ ID เพื่อให้คุณได้รับสตริงนี้:
platform=iOS Simulator,OS=11.1,name=iPad Pro (12.9-inch) (2nd generation)
จากนั้นคำสั่งทั้งหมดจะเป็น:
xcodebuild test -destination 'platform=iOS Simulator,OS=11.1,name=iPad Pro (12.9-inch) (2nd generation)' -workspace Register.xcworkspace -scheme ThatTestTarget
คุณกำลังสร้าง "Build Only Device" ของ Xcode ซึ่งกำลังรวบรวมแอป สำหรับโปรเซสเซอร์ ARM (ในขณะที่การคอมไพล์สำหรับตัวจำลองกำหนดเป้าหมายไปที่ CPU Intel บน Mac ของคุณ)
เสียบอุปกรณ์และเลือกจากป๊อปอัพโครงร่างที่ใช้งานอยู่หรือเลือกหนึ่งในเครื่องจำลองและคุณควรไป
ด้วย XCode 8.3.2 ฉันได้รับข้อความแสดงข้อผิดพลาดนี้หลังจากที่ฉันพยายามเรียกใช้แอปบนอุปกรณ์ที่ถูกล็อก ฉันปลดล็อกและเชื่อมต่อใหม่ตามที่ร้องขอ แต่ "อุปกรณ์ที่สร้างขึ้นเท่านั้นไม่สามารถใช้เพื่อเรียกใช้เป้าหมายนี้ได้" ข้อความปรากฏขึ้น
ฉันเพิ่งเปลี่ยนเป้าหมายเป็นตัวจำลองและเปลี่ยนกลับ - มันช่วยแก้ปัญหาของฉันได้
สิ่งที่คุ้มค่าหากคุณได้รับข้อผิดพลาดA build only device cannot be used to run this target
และดูในตัวนำทางปัญหาข้อความนี้:
ProjectName
Target Integrity:
iOS Deployment Target 'XX.X'
ใหม่กว่า SDK 'iOS YY.Y' ใน
ProjectName เป้าหมาย
ปัญหาก็คือโครงการต้องการ iOS SDK ที่ใหม่กว่า Xcode เวอร์ชันของคุณที่มีให้ คุณจะพบปัญหานี้ในโครงการที่ใช้ประโยชน์จากฟังก์ชัน iOS SDK ใหม่ / เบต้าเช่น ARKit
วิธีแก้ปัญหาคือดาวน์โหลดXcode เวอร์ชันเบต้าล่าสุดซึ่งควรมีการรองรับ iOS SDK ที่ไม่เปิดเผยต่อสาธารณะที่แอปพลิเคชันต้องการ หากคุณมี Xcode ล่าสุด iOS Preferences -> Components -> Simulators
ของคุณลองหาเป้าหมายใน
หากคุณใช้ Cordova / Ionic ไปที่ผลิตภัณฑ์ -> ปลายทาง -> เลือกเป้าหมายและเรียกใช้ใหม่
การปรับเปลี่ยนเป็นคำตอบของ @ Quver ด้วย Xcode เวอร์ชันล่าสุด (8.3) พารามิเตอร์ไปยังคำสั่งปลายทางควรกำหนดเป็นเครื่องหมายคำพูดคู่ คำพูดเดี่ยวไม่ได้ผลสำหรับฉัน
เพิ่ม-destination "platform=iOS Simulator,name=iPhone 7"
ในไฟล์xcodebuild
ฉันไม่ได้กล่าวถึงเวอร์ชันของระบบปฏิบัติการในคำสั่งด้านบนเนื่องจากเมื่อมีการเปิดตัว iOS เวอร์ชันใหม่คำสั่งนี้จะผ่านข้อผิดพลาดที่แจ้งว่าไม่พบอุปกรณ์นี้ ดังนั้นจึงเป็นการดีกว่าที่จะไม่ให้เวอร์ชัน OS
ในกรณีของฉันสิ่งนี้เกิดขึ้นเมื่อฉันเลือกอุปกรณ์ iOS ทั่วไปและพยายาม "สร้าง" เพื่อเผยแพร่ไปยัง AppStore
แต่ฉันควรเลือก Product -> Archive แทน
สิ่งที่ xcodebuild ไม่ทำงานในกรณีของฉัน
นี่คือสิ่งที่ฉันแก้ไขได้
ฉันได้ลบบัญชี apple ของฉันและตั้งค่า (เข้าสู่ระบบ) ใหม่ในการตั้งค่า xcode และสิ่งนี้ได้รับการแก้ไข
ปล. บน iphone 10.1 ฉันต้องกดปุ่ม Trust บน General> Device Management> account info> Trust App
ฉันแก้ไขปัญหานี้สำหรับโปรแกรมจำลอง
ขั้นแรกตรวจสอบรายการโปรแกรมจำลองของคุณ
หน้าต่าง> อุปกรณ์และเครื่องจำลอง
หลังจากเลือกอุปกรณ์ใด ๆ แล้วคลิกตรวจสอบเวอร์ชัน OS
หากคุณมีเพียง Apple Watch OS คุณควรดาวน์โหลด IOS Simulator ใหม่
และคลิกดาวน์โหลด runtimes จำลองเพิ่มเติม ..
เลือก IOS Simulator ที่ถูกต้องและดาวน์โหลด
ฉันแก้ไขปัญหานี้โดยไปที่การตั้งค่าโครงการและในส่วน 'เป้าหมาย' ของฉันฉันต้องตั้งค่าเป้าหมายการทดสอบให้กับทีมที่ถูกต้อง
ถ้าคุณต้องการรับรายชื่อปลายทางที่มีให้เรียกใช้ xcodebuild และส่งผ่านในตัวเลือกบรรทัดคำสั่ง-showdestinations
และมันจะพิมพ์ตัวเลือกที่ถูกต้องให้คุณเลือกจาก:
xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget
ฉันลองเกือบทุกอย่างข้างต้นรวมถึงการรีสตาร์ท XCode แต่ไม่มีสิ่งใดที่ได้ผลสำหรับฉัน ฉันจะแก้ไขปัญหานี้โดยเพียงแค่การเริ่มต้นใหม่ของฉัน Mac ใช่วิธีแก้ปัญหาแบบคลาสสิก
หมายเหตุด้านข้าง: ปัญหานี้เกิดขึ้นกับ XCode ของฉันหลังจากที่ขอรหัสผ่าน Mac จากฉันซึ่งอาจเกิดจากการอัปเกรดอัตโนมัติ
สำหรับ xcode v11:
ฉันพบปัญหานี้เมื่อพยายามสร้างที่เก็บถาวรของโครงการของฉัน ฉันพยายามคลิก "สร้าง" เมื่ออุปกรณ์ถูกตั้งค่าเป็น "อุปกรณ์ iOS ทั่วไป" แต่ขั้นตอนที่ถูกต้องคือ:
ฉันพบข้อความแสดงข้อผิดพลาดเดียวกัน นี่คือสิ่งที่ฉันได้สัมผัสและทำจนถึงตอนนี้
ขั้นตอนที่ 1: ตรวจสอบเป้าหมายของคุณ
เป้าหมายปัจจุบันของฉันคือ IOS 13.2 จากที่นี่คุณจะไม่เห็นเวอร์ชันที่คุณมีอยู่ในเครื่องของคุณ
ขั้นตอนที่ 2: ตรวจสอบเวอร์ชันที่มีในเครื่องของคุณ
- คลิกอุปกรณ์ IOS ทั่วไป
- นี้จะแสดงเมนูแบบเลื่อนลงที่มีดาวน์โหลดจำลอง ...เลือก
- ในกรณีที่มองไม่เห็นตัวเลือกDownload Simulators ...คุณต้องลดเป้าหมายลง ในกรณีของฉันจาก 13.2 ฉันทำมันเป็น 13.0 (ขึ้นอยู่กับ XCode ปัจจุบันของคุณ) จากนั้นทำซ้ำขั้นตอนที่ 2อีกครั้ง
- จากที่นี่ฉันสามารถเห็นตัวเลือกดาวน์โหลดตัวจำลอง ...
- เลือกมัน
- ตอนนี้คุณจะเห็นว่าคุณมีเวอร์ชันอะไรบ้าง
- จากที่นี่คุณสามารถเลือกดาวน์โหลดหรือใช้เวอร์ชันที่คุณมี (เวอร์ชันที่เลือกไว้)
ขั้นตอนที่ 3: เปลี่ยนเป้าหมาย IOS ของคุณตามนั้น
- ตอนนี้คุณรู้แล้วว่ามีโปรแกรมจำลองรุ่นใดบ้างที่คุณมีอยู่ในเครื่องตอนนี้คุณสามารถเปลี่ยนเป้าหมาย IOS ได้แล้ว
- ในกรณีของฉันฉันเลือกใช้ IOS 11 (สำหรับตัวอย่างนี้เท่านั้น)
- จากนั้นฉันก็เปลี่ยนเป้าหมาย
- คลิกอุปกรณ์ IOS ทั่วไปอีกครั้ง
- จากที่นี่คุณสามารถเลือกโปรแกรมจำลองใดก็ได้ภายใต้ IOS นั้น
ฉันไม่ใช่ผู้เชี่ยวชาญฉันแค่อยากจะแบ่งปันประสบการณ์ของฉันและฉันหวังว่าสิ่งนี้จะช่วยใครสักคนได้
ฉันมีปัญหาที่แตกต่างไปจากเดิมอย่างสิ้นเชิง ด้วยเหตุผลบางอย่าง app ของฉัน " อุปกรณ์ " ถูกกำหนดให้ยูนิเวอร์แซสร้างเมื่อเทียบกับiPhone เมื่อฉันเปลี่ยนเป็น iPhone ทุกอย่างทำงานได้ ไม่ต้องการการตั้งค่าเพิ่มเติมใด ๆ
สิ่งนี้ได้ผลสำหรับฉัน
คุณกำลังพยายามเรียกใช้บนอุปกรณ์เมื่อคุณสร้างมันขึ้นมาสำหรับรูปแบบอื่นแล้ว ไปที่
สินค้า> ทำความสะอาด
จากนั้นสร้างด้วยอุปกรณ์ของคุณที่เลือกจากโครงร่างที่ใช้งานอยู่