ไม่สามารถใช้อุปกรณ์สร้างอย่างเดียวเพื่อเรียกใช้เป้าหมายนี้


86

ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามทดสอบแอป

ไม่สามารถใช้อุปกรณ์สร้างอย่างเดียวเพื่อเรียกใช้เป้าหมายนี้

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


หากคุณใช้อุปกรณ์และคุณมีบัญชีนักพัฒนาแอปเปิ้ลของคุณโปรดลบแอปออกจากอุปกรณ์ของคุณแล้วเรียกใช้
BollMose

คำตอบ:


78

เพิ่ม-destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'ในไฟล์xcodebuild


7
คำอธิบาย: Xcode พยายามสร้างด้วยอุปกรณ์ iOS ทั่วไป แต่ต้องทำการทดสอบที่เครื่องจำลอง
Adriana

7
คำสั่งที่สมบูรณ์และใช้งานได้:xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
Jianxin Gao

/ usr / bin / xcodebuild เป็นไฟล์ไบนารี คุณไม่ควรแก้ไข
ต่อ Quested Aronsson

ทำไมคุณถึงต้องการแก้ไข?
Quver

xcodebuildคุณไม่จำเป็นที่จะเพิ่มเข้ามาในนี้ สิ่งที่คุณต้องมีคือรันคำสั่งนี้ด้วยพารามิเตอร์
Quver

44

บางที Scheme อาจเปลี่ยนไปใช้อุปกรณ์ทั่วไป ลองเลือกอุปกรณ์ที่เชื่อมต่ออีกครั้งจากเมนู Scheme:

ภาพเมนู


18

ด้านล่างเป็นทางของฉัน

เลือกโครงการ -> ทั่วไป -> ข้อมูลการปรับใช้ -> เป้าหมายการปรับใช้ -> เลือกเวอร์ชันที่ต่ำกว่า ใส่คำอธิบายภาพที่นี่


1
กรณีนี้มีประโยชน์เมื่อคุณนำเข้าโครงการที่มีเป้าหมายการปรับใช้สูงกว่าเป้าหมายการปรับใช้ในพื้นที่ของคุณการลดลงสามารถแก้ไขปัญหาได้
Parama Dharmika

7

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

และวิธีแก้ปัญหาของฉันคือเลือก Build Settings ---> Deployment -----> IOS Deployment Target ----> เลือกเวอร์ชันที่ต่ำกว่าเช่น 8.0

และฉันพบเครื่องจำลองออกมาและสามารถเลือกได้


คุณมีเครื่องจำลองที่ติดตั้งระบบปฏิบัติการเวอร์ชันใหม่หรือไม่? ไปที่ Xcode -> ค่ากำหนด -> ดาวน์โหลดเพื่อดูรายการรันไทม์ของโปรแกรมจำลองระบบเดิมที่เข้ากันได้
Lepidopteron

7

คุณต้องได้รับรายชื่อจุดหมายปลายทางที่ถูกต้อง ในการดำเนินการนี้ให้ระบุคู่คีย์ - ค่าที่ผิดพลาดและ 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

4

คุณกำลังสร้าง "Build Only Device" ของ Xcode ซึ่งกำลังรวบรวมแอป สำหรับโปรเซสเซอร์ ARM (ในขณะที่การคอมไพล์สำหรับตัวจำลองกำหนดเป้าหมายไปที่ CPU Intel บน Mac ของคุณ)

เสียบอุปกรณ์และเลือกจากป๊อปอัพโครงร่างที่ใช้งานอยู่หรือเลือกหนึ่งในเครื่องจำลองและคุณควรไป


ฉันไม่เรียกตัวเองว่าโกงเพราะฉันเก่งในเรื่องนี้ ... ขอบคุณ 2 ชั่วโมงที่เสียไปฮ่า ....
yrpalnoob

3

ด้วย XCode 8.3.2 ฉันได้รับข้อความแสดงข้อผิดพลาดนี้หลังจากที่ฉันพยายามเรียกใช้แอปบนอุปกรณ์ที่ถูกล็อก ฉันปลดล็อกและเชื่อมต่อใหม่ตามที่ร้องขอ แต่ "อุปกรณ์ที่สร้างขึ้นเท่านั้นไม่สามารถใช้เพื่อเรียกใช้เป้าหมายนี้ได้" ข้อความปรากฏขึ้น

ฉันเพิ่งเปลี่ยนเป้าหมายเป็นตัวจำลองและเปลี่ยนกลับ - มันช่วยแก้ปัญหาของฉันได้


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ของคุณลองหาเป้าหมายใน



1

การปรับเปลี่ยนเป็นคำตอบของ @ Quver ด้วย Xcode เวอร์ชันล่าสุด (8.3) พารามิเตอร์ไปยังคำสั่งปลายทางควรกำหนดเป็นเครื่องหมายคำพูดคู่ คำพูดเดี่ยวไม่ได้ผลสำหรับฉัน

เพิ่ม-destination "platform=iOS Simulator,name=iPhone 7"ในไฟล์xcodebuild

ฉันไม่ได้กล่าวถึงเวอร์ชันของระบบปฏิบัติการในคำสั่งด้านบนเนื่องจากเมื่อมีการเปิดตัว iOS เวอร์ชันใหม่คำสั่งนี้จะผ่านข้อผิดพลาดที่แจ้งว่าไม่พบอุปกรณ์นี้ ดังนั้นจึงเป็นการดีกว่าที่จะไม่ให้เวอร์ชัน OS


1

ในกรณีของฉันสิ่งนี้เกิดขึ้นเมื่อฉันเลือกอุปกรณ์ iOS ทั่วไปและพยายาม "สร้าง" เพื่อเผยแพร่ไปยัง AppStore
แต่ฉันควรเลือก Product -> Archive แทน


0
  1. ฉันสมัคร AppleID ใหม่และเพิ่มลงใน "Xcode-> Preferences-> Account" เพื่อแก้ปัญหานี้ (Xcode 7.3)
  2. ในเวลาเดียวกันฉันได้ลบ AppleID ดั้งเดิมใน "Xcode-> Preferences-> Account" เนื่องจากไม่ใช่บัญชีแบบชำระเงินอีกต่อไปและไม่สามารถเพิ่มอุปกรณ์ใหม่ได้

0

สิ่งที่ xcodebuild ไม่ทำงานในกรณีของฉัน

นี่คือสิ่งที่ฉันแก้ไขได้

ฉันได้ลบบัญชี apple ของฉันและตั้งค่า (เข้าสู่ระบบ) ใหม่ในการตั้งค่า xcode และสิ่งนี้ได้รับการแก้ไข

ปล. บน iphone 10.1 ฉันต้องกดปุ่ม Trust บน General> Device Management> account info> Trust App


0

ฉันแก้ไขปัญหานี้สำหรับโปรแกรมจำลอง

ขั้นแรกตรวจสอบรายการโปรแกรมจำลองของคุณ

หน้าต่าง> อุปกรณ์และเครื่องจำลอง

หลังจากเลือกอุปกรณ์ใด ๆ แล้วคลิกตรวจสอบเวอร์ชัน OS

หากคุณมีเพียง Apple Watch OS คุณควรดาวน์โหลด IOS Simulator ใหม่

และคลิกดาวน์โหลด runtimes จำลองเพิ่มเติม ..

เลือก IOS Simulator ที่ถูกต้องและดาวน์โหลด


0

ฉันแก้ไขปัญหานี้โดยไปที่การตั้งค่าโครงการและในส่วน 'เป้าหมาย' ของฉันฉันต้องตั้งค่าเป้าหมายการทดสอบให้กับทีมที่ถูกต้อง


0

ถ้าคุณต้องการรับรายชื่อปลายทางที่มีให้เรียกใช้ xcodebuild และส่งผ่านในตัวเลือกบรรทัดคำสั่ง-showdestinationsและมันจะพิมพ์ตัวเลือกที่ถูกต้องให้คุณเลือกจาก:

xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget

0

ฉันลองเกือบทุกอย่างข้างต้นรวมถึงการรีสตาร์ท XCode แต่ไม่มีสิ่งใดที่ได้ผลสำหรับฉัน ฉันจะแก้ไขปัญหานี้โดยเพียงแค่การเริ่มต้นใหม่ของฉัน Mac ใช่วิธีแก้ปัญหาแบบคลาสสิก

หมายเหตุด้านข้าง: ปัญหานี้เกิดขึ้นกับ XCode ของฉันหลังจากที่ขอรหัสผ่าน Mac จากฉันซึ่งอาจเกิดจากการอัปเกรดอัตโนมัติ


0

สำหรับ xcode v11:

ฉันพบปัญหานี้เมื่อพยายามสร้างที่เก็บถาวรของโครงการของฉัน ฉันพยายามคลิก "สร้าง" เมื่ออุปกรณ์ถูกตั้งค่าเป็น "อุปกรณ์ iOS ทั่วไป" แต่ขั้นตอนที่ถูกต้องคือ:

  1. ตั้งค่าอุปกรณ์เป็น "อุปกรณ์ iOS ทั่วไป"
  2. ไปที่ Product -> Archive ( ข้ามการกด Build! )

0

ฉันพบข้อความแสดงข้อผิดพลาดเดียวกัน นี่คือสิ่งที่ฉันได้สัมผัสและทำจนถึงตอนนี้

ขั้นตอนที่ 1: ตรวจสอบเป้าหมายของคุณ

เป้าหมายปัจจุบันของฉันคือ IOS 13.2 จากที่นี่คุณจะไม่เห็นเวอร์ชันที่คุณมีอยู่ในเครื่องของคุณ

ใส่คำอธิบายภาพที่นี่

ขั้นตอนที่ 2: ตรวจสอบเวอร์ชันที่มีในเครื่องของคุณ

  • คลิกอุปกรณ์ IOS ทั่วไป

ใส่คำอธิบายภาพที่นี่

  • นี้จะแสดงเมนูแบบเลื่อนลงที่มีดาวน์โหลดจำลอง ...เลือก
  • ในกรณีที่มองไม่เห็นตัวเลือกDownload Simulators ...คุณต้องลดเป้าหมายลง ในกรณีของฉันจาก 13.2 ฉันทำมันเป็น 13.0 (ขึ้นอยู่กับ XCode ปัจจุบันของคุณ) จากนั้นทำซ้ำขั้นตอนที่ 2อีกครั้ง
  • จากที่นี่ฉันสามารถเห็นตัวเลือกดาวน์โหลดตัวจำลอง ...
  • เลือกมัน

ใส่คำอธิบายภาพที่นี่

  • ตอนนี้คุณจะเห็นว่าคุณมีเวอร์ชันอะไรบ้าง
  • จากที่นี่คุณสามารถเลือกดาวน์โหลดหรือใช้เวอร์ชันที่คุณมี (เวอร์ชันที่เลือกไว้)

ใส่คำอธิบายภาพที่นี่

ขั้นตอนที่ 3: เปลี่ยนเป้าหมาย IOS ของคุณตามนั้น

  • ตอนนี้คุณรู้แล้วว่ามีโปรแกรมจำลองรุ่นใดบ้างที่คุณมีอยู่ในเครื่องตอนนี้คุณสามารถเปลี่ยนเป้าหมาย IOS ได้แล้ว
  • ในกรณีของฉันฉันเลือกใช้ IOS 11 (สำหรับตัวอย่างนี้เท่านั้น)
  • จากนั้นฉันก็เปลี่ยนเป้าหมาย

ใส่คำอธิบายภาพที่นี่

  • คลิกอุปกรณ์ IOS ทั่วไปอีกครั้ง

ใส่คำอธิบายภาพที่นี่

  • จากที่นี่คุณสามารถเลือกโปรแกรมจำลองใดก็ได้ภายใต้ IOS นั้น

ใส่คำอธิบายภาพที่นี่

ฉันไม่ใช่ผู้เชี่ยวชาญฉันแค่อยากจะแบ่งปันประสบการณ์ของฉันและฉันหวังว่าสิ่งนี้จะช่วยใครสักคนได้


-1

ฉันมีปัญหาที่แตกต่างไปจากเดิมอย่างสิ้นเชิง ด้วยเหตุผลบางอย่าง app ของฉัน " อุปกรณ์ " ถูกกำหนดให้ยูนิเวอร์แซสร้างเมื่อเทียบกับiPhone เมื่อฉันเปลี่ยนเป็น iPhone ทุกอย่างทำงานได้ ไม่ต้องการการตั้งค่าเพิ่มเติมใด ๆ


-2

สิ่งนี้ได้ผลสำหรับฉัน

คุณกำลังพยายามเรียกใช้บนอุปกรณ์เมื่อคุณสร้างมันขึ้นมาสำหรับรูปแบบอื่นแล้ว ไปที่

สินค้า> ทำความสะอาด

จากนั้นสร้างด้วยอุปกรณ์ของคุณที่เลือกจากโครงร่างที่ใช้งานอยู่

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