Bu hedefi çalıştırmak için yalnızca derleme cihazı kullanılamaz


86

Bir uygulamayı test etmeye çalışırken bu hatayı alıyorum.

Bu hedefi çalıştırmak için yalnızca derleme aygıtı kullanılamaz.

Desteklenen iOS cihazı mevcut değil. Uygulamanızı çalıştırmak için bir cihaz bağlayın veya hedef olarak simüle edilmiş bir cihaz seçin.


Bir cihaz kullanıyorsanız ve Apple geliştirici hesabınız varsa, lütfen uygulamayı cihazınızdan silin ve ardından çalıştırın.
BollMose

Yanıtlar:


78

eklemek -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'için sizinxcodebuild


7
Açıklama: Xcode, Genel iOS Cihazı ile derlemeye çalışır ancak testin simülatörde oluşturulması gerekir.
Adriana

7
Tam ve çalışma komutu:xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
Jianxin Gao

/ usr / bin / xcodebuild bir ikili dosyadır. Muhtemelen onu değiştirmemelisin.
Per Quested Aronsson

Neden onu değiştirmek istiyorsun?
Quver

Bunu eklemenize gerek yok xcodebuild. İhtiyacınız olan tek şey bu komutu parametrelerle çalıştırmak
Quver

44

Belki Plan, Genel bir cihaza geçmiştir. Şema menüsünden bağlı cihazı tekrar seçmeyi deneyin:

Menü resmi


18

Aşağıda benim yolum

Proje seçin -> Genel -> Dağıtım Bilgisi -> Dağıtım Hedefi -> daha düşük bir sürüm seçin görüntü açıklamasını buraya girin


1
Bu durum, dağıtım hedefi yerel dağıtım hedefinizden daha yüksek olan bir projeyi içe aktardığınızda kullanışlıdır, bu sorunu düşürmek sorunu çözebilir
Parama Dharmika

7

Yalnızca "Genel iOS Cihazı" seçilebilen bir sorunla karşılaşıyorum. ve çalıştırdığımda "Bu hedefi çalıştırmak için yalnızca derleme cihazı kullanılamaz. Desteklenen iOS cihazı yok. Uygulamanızı çalıştırmak için bir cihaz bağlayın veya hedef olarak simüle edilmiş bir cihaz seçin"

ve benim sorun için çözümüm Derleme Ayarları ---> Dağıtım -----> IOS Dağıtım Hedefi ----> 8.0 gibi daha düşük bir sürüm seçmek,

ve simülatörün çıktığını ve seçilebileceğini buldum.


Daha yeni işletim sistemi sürümü kurulu simülatörleriniz var mı? Uyumlu eski simülatör çalışma zamanlarının listesini görmek için Xcode -> Tercihler -> İndirmeler'e gidin.
Lepidopteron

7

Geçerli hedeflerin bir listesini almanız gerekir. Bunu yapmak için hatalı bir anahtar / değer çifti belirtin ve xcodebuild çalışan kombinasyonları ortaya çıkaracaktır:

Hedefleri Listele Komutu

xcodebuild test -destination 'platform=iOS Simulator' -workspace Register.xcworkspace -scheme ThatTestTarget

Çıktı Örneği

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

Eşittir İşaretleri için Sütunları Değiştir, Boşlukları Kaldır, Kimliği Yoksay

Yani bu hedefi kullanmak istiyorsanız:

platform:iOS Simulator, id:684FF1BA-8784-4B7C-B4E5-5231772F0FAC, OS:11.1, name:iPad Pro (12.9-inch) (2nd generation)

İki nokta üst üste virgüllerini değiştirin, boşlukları kaldırın, kimliği kaldırın, böylece bu dizeyi elde edersiniz:

platform=iOS Simulator,OS=11.1,name=iPad Pro (12.9-inch) (2nd generation)

O zaman komutun tamamı şöyle olacaktır:

xcodebuild test -destination 'platform=iOS Simulator,OS=11.1,name=iPad Pro (12.9-inch) (2nd generation)' -workspace Register.xcworkspace -scheme ThatTestTarget

4

Uygulamayı derleyen Xcode'un "Yalnızca Cihaz Oluştur" için yapı oluşturuyorsunuz. ARM işlemci için (simülatör için derleme, Mac'inizdeki Intel CPU'yu hedefler.)

Bir cihazı takın ve aktif şema açılır penceresinden seçin veya simülatörlerden birini seçin ve gitmeniz iyi olur.


Kendime kale demiyorum çünkü bu işte iyiyim ... Teşekkürler 2 saat boşa harcadım ha ....
yrpalnoob

3

XCode 8.3.2 ile uygulamayı kilitli bir cihazda çalıştırmayı denedikten sonra bu hata mesajını aldım. İstendiği gibi kilidini açtım ve yeniden bağladım, ancak "Yalnızca derleme aygıtı bu hedefi çalıştırmak için kullanılamaz." mesaj çıktı.

Hedefi bir simülatör olarak değiştirdim ve tekrar değiştirdim - sorunumu çözdü.


2

Hatayı alırsanız A build only device cannot be used to run this targetve Sorun gezgininde bu metne bakın ne kadar önemliyse:

ProjectName
Hedef Bütünlüğü:
iOS Dağıtım Hedefi 'XX.X', hedef ProjeAdı'ndaki
'iOS YY.Y' SDK'sından daha yenidir

sorun şu ki, proje Xcode sürümünüzün mevcut olandan daha yeni bir iOS SDK gerektirmesidir. Bu sorunu, diyelim ki ARKit gibi yeni / beta iOS SDK işlevlerinden yararlanan projelerde bulacaksınız.

Çözüm, uygulamanın gerektirdiği halka açık olmayan iOS SDK için desteğe sahip olması gereken Xcode'un en yeni beta sürümünü indirmektir . En son Xcode'a sahipseniz, hedef iOS'u bulmayı deneyin Preferences -> Components -> Simulators.


2

Cordova / Ionic kullanıyorsanız Ürünlere Git -> Hedef-> Hedefi seçin ve tekrar çalıştırın


1

@ Quver'ın cevabında değişiklik. En son Xcode sürümü (8.3) ile, hedef komutu için parametreler çift tırnak içinde verilmelidir. Tek alıntılar benim için işe yaramadı

eklemek -destination "platform=iOS Simulator,name=iPhone 7"için sizinxcodebuild

Yukarıdaki komutta işletim sistemi sürümünden bahsetmedim çünkü iOS'un daha yeni bir sürümü piyasaya sürüldüğünde, bu komut bu cihazın bulunmadığını söyleyerek hata verecektir. Bu yüzden işletim sistemi sürümünü vermemek daha iyidir


1

Benim durumumda bu, Genel bir iOS cihazı seçtiğimde ve bunu AppStore'da yayınlamak için "oluşturmaya" çalıştığımda oldu.
Ama bunun yerine Ürün -> Arşiv'i seçmeliydim


0
  1. Yeni bir AppleID için başvurdum ve bu sorunu çözmek için "Xcode-> Tercihler-> Hesap" a ekledim. (Xcode 7.3)
  2. Aynı zamanda "Xcode-> Tercihler-> Hesap" bölümünde orijinal AppleID'yi sildim çünkü artık ücretli bir hesap değildi ve yeni cihaz ekleyemiyordum.

0

xcodebuild şeyler benim durumumda çalışmıyordu.

İşte çözdüğüm şey.

Apple hesabımı kaldırdım ve xcode tercihini yeniden ayarladım (giriş) ve bu çözüldü.

ps. iphone 10.1'de, Genel> Cihaz Yönetimi> hesap bilgileri> Güven Uygulaması'nda Güven düğmesine basmam gerekiyordu


0

Emülatör için bu sorunu düzelttim,

Öncelikle emülatör listenizi kontrol edin

Pencere> Cihazlar ve Simülatörler

herhangi bir cihazı seçtikten ve OS Sürümünü kontrol et'e tıkladıktan sonra

Yalnızca Apple Watch İşletim Sisteminiz varsa, yeni IOS Simulator indirmelisiniz

ve diğer simülatör çalışma zamanlarını indir'i tıklayın ..

Doğru IOS Simülatörünüzü seçin ve indirin.


0

Bu sorunu proje ayarlarına giderek düzelttim ve 'Hedefler' bölümümün altında Testler hedefini doğru takıma ayarlamak zorunda kaldım.


0

Peki, mevcut hedeflerin listesini almak istiyorsanız, xcodebuild'i çağırın ve komut satırı seçeneğini iletin, aralarından -showdestinationsseçim yapabileceğiniz geçerli seçenekleri yazdıracaktır:

xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget

0

XCode'u yeniden başlatmak dahil olmak üzere hemen hemen her şeyi denedim, hiçbiri benim için çalışmadı. Bu sorunu sadece Mac'imi yeniden başlatarak çözdüm . Evet, klasik çözüm.

Bir yan not: Bu sorun, muhtemelen otomatik bir güncellemeden sonra, Mac parolamı benden talep ettikten sonra XCode'umda oluştu.


0

Xcode v11 için:

Projemin Arşivini oluşturmaya çalışırken bu sorunla karşılaştım. Cihaz "Genel iOS Cihazı" olarak ayarlandığında "Oluştur" u tıklamaya çalışıyordum, ancak uygun adımlar şunlardı:

  1. Cihazı "Genel iOS Cihazı" olarak ayarlayın
  2. Ürün -> Arşiv'e gidin ( Oluştur'a basmayı atlayın! )

0

Aynı hata mesajıyla karşılaştım. İşte şimdiye kadar yaşadıklarım ve yaptıklarım;

Adım 1: Hedefinizi kontrol edin.

Şu anki hedefim IOS 13.2. Buradan, makinenizde şu anda hangi sürümlere sahip olduğunuzu göremeyeceksiniz.

görüntü açıklamasını buraya girin

2. Adım: Bölgenizdeki mevcut sürümleri kontrol edin

  • Generic IOS Device'ı tıklayın

görüntü açıklamasını buraya girin

  • Bu, Simülatörleri İndir ... seçimini içeren bir açılır menü görüntüler.
  • Durumda İndir Simülatörleri ... seçimi görünmez, sizin hedef aşağı düşürmek gerekir. Benim durumumda, 13.2'den 13.0 yaptım (Bu, mevcut XCode'unuza bağlıdır) ve ardından Adım 2'yi tekrarlayın.
  • Buradan Simülatörleri İndir ... seçimini şimdi görebiliyorum
  • Seçin

görüntü açıklamasını buraya girin

  • Şimdi sahip olduğunuz mevcut sürümleri göreceksiniz
  • Buradan, indirmeyi veya sadece sahip olduğunuz sürümü kullanmayı seçebilirsiniz (Seçili olanı)

görüntü açıklamasını buraya girin

3. Adım: IOS hedefinizi uygun şekilde değiştirin

  • Artık yerel olarak sahip olduğunuz simülatörün mevcut sürümlerini zaten bildiğinize göre, artık IOS hedefini değiştirebilirsiniz.
  • Benim durumumda IOS 11'i kullanmayı seçiyorum (Sadece bu örnek için)
  • Sonra hedefi değiştiriyorum

görüntü açıklamasını buraya girin

  • Generic IOS Device'ı tekrar tıklayın

görüntü açıklamasını buraya girin

  • Buradan, artık o IOS altındaki herhangi bir simülatörü seçebilirsiniz.

görüntü açıklamasını buraya girin

Uzman değilim, sadece deneyimlerimi paylaşmak istedim ve umarım bu birisine yardımcı olabilir.


-1

Tamamen farklı bir problemim vardı. Bazı nedenlerden dolayı, " Cihazlar " uygulamam iPhone'un aksine Evrensel derlemeye ayarlandı . Onu iPhone'a geçirdiğimde her şey çalıştı. Ekstra ayara gerek yoktu.


-2

Bu benim için çalıştı.

Zaten farklı bir şema için oluşturduğunuzda bir cihazda çalıştırmaya çalışıyorsunuz. Git

Ürün> Temizle.

Ardından, aktif şemalardan seçilen cihazınızla oluşturun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.