Un dispositivo di sola build non può essere utilizzato per eseguire questo target


86

Ricevo questo errore quando provo a testare un'app.

Un dispositivo di sola build non può essere utilizzato per eseguire questo target.

Non sono disponibili dispositivi iOS supportati. Collega un dispositivo per eseguire l'applicazione o scegli un dispositivo simulato come destinazione.


Se utilizzi un dispositivo e hai il tuo account sviluppatore Apple, elimina l'app dal dispositivo e quindi eseguila.
BollMose

Risposte:


78

aggiungi -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'al tuoxcodebuild


7
Spiegazione: Xcode tenta di compilare con il dispositivo iOS generico ma il test deve essere compilato nel simulatore.
Adriana

7
Un comando completo e funzionante:xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
Jianxin Gao

/ usr / bin / xcodebuild è un file binario. Probabilmente non dovresti modificarlo.
Per Quested Aronsson

Perché vuoi modificarlo?
Quver

Non è necessario aggiungerlo in xcodebuild. Tutto ciò di cui hai bisogno è eseguire questo comando con i parametri
Quver

44

Forse lo schema è passato a un dispositivo generico. Prova a scegliere di nuovo il dispositivo connesso dal menu Schema:

Immagine del menu


18

Di seguito è la mia strada

Seleziona progetto -> Generale -> Informazioni sulla distribuzione -> Destinazione della distribuzione -> scegli una versione inferiore inserisci qui la descrizione dell'immagine


1
Questo caso è utile quando importi un progetto con un obiettivo di distribuzione superiore al tuo obiettivo di distribuzione locale, abbassarlo può risolvere il problema
Parama Dharmika

7

incontro un problema che può essere scelto solo "Generic iOS Device". e quando eseguo, viene visualizzato il messaggio "Non è possibile utilizzare un dispositivo di sola build per eseguire questo target. Non sono disponibili dispositivi iOS supportati. Collega un dispositivo per eseguire l'applicazione o scegli un dispositivo simulato come destinazione"

e la mia soluzione per il problema è selezionare Impostazioni di compilazione ---> Distribuzione -----> Destinazione di distribuzione IOS ----> scegli una versione inferiore come 8.0,

e ho scoperto che il simulatore è uscito e può essere scelto.


Hai simulatori con una versione del sistema operativo più recente installata? Vai a Xcode -> Preferenze -> Download per visualizzare l'elenco dei runtime del simulatore legacy compatibile.
Lepidopteron

7

È necessario ottenere un elenco di destinazioni valide. Per fare ciò, specifica una coppia chiave-valore errata e xcodebuild sputerà le combinazioni che funzionano:

Comando Elenco destinazioni

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

Esempio di output

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

Cambia i due punti per i segni di uguale, Rimuovi spazi, Ignora l'ID

Quindi, se vuoi utilizzare questa destinazione:

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

Cambia i due punti per le virgole, rimuovi gli spazi, rimuovi l'ID, in modo da ottenere questa stringa:

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

Quindi l'intero comando sarebbe:

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

4

Stai costruendo per "Build Only Device" di Xcode, che sta compilando l'app. per il processore ARM (mentre la compilazione per il simulatore mira alla CPU Intel sul tuo Mac.)

Collega un dispositivo e selezionalo dal popup dello schema attivo oppure seleziona uno dei simulatori e dovresti essere a posto.


Non mi definisco una torre perché sono bravo in queste cose ... Grazie 2 ore sprecate ha ....
yrpalnoob

3

Con XCode 8.3.2 ho ricevuto questo messaggio di errore dopo aver provato a eseguire l'app su un dispositivo bloccato. Ho sbloccato e ricollegato come richiesto, ma il "Un dispositivo solo build non può essere utilizzato per eseguire questo target." messaggio apparso.

Ho semplicemente cambiato l'obiettivo in un simulatore e l'ho cambiato di nuovo: ha risolto il mio problema.


2

Per quello che vale, se ricevi l'errore A build only device cannot be used to run this targete vedi nel navigatore Problemi questo testo:

ProjectName
Target Integrity:
iOS Deployment Target "XX.X" è
più recente dell'SDK "iOS YY.Y" nel
target ProjectName

quindi il problema è che il progetto richiede un SDK iOS che è più recente di quello disponibile nella tua versione di Xcode. Troverai questo problema, ad esempio, in progetti che sfruttano le funzionalità SDK iOS nuove / beta come ARKit.

La soluzione è scaricare la versione beta più recente di Xcode , che dovrebbe avere il supporto per l'SDK iOS rilasciato non pubblico richiesto dall'applicazione. Se hai l'ultimo Xcode, prova a trovare l'iOS di destinazione in Preferences -> Components -> Simulators.


2

Se stai usando cordova / Ionic vai su Prodotti -> Destinazione-> Scegli il bersaglio e riesegui


1

Modifica alla risposta di @ Quver. Con l'ultima versione di Xcode (8.3), i parametri del comando di destinazione dovrebbero essere indicati tra virgolette doppie. Le virgolette singole non hanno funzionato per me

aggiungi -destination "platform=iOS Simulator,name=iPhone 7"al tuoxcodebuild

Non ho menzionato la versione del sistema operativo nel comando precedente perché quando viene rilasciata una versione più recente di iOS, questo comando indicherà per errore che questo dispositivo non è stato trovato. Quindi è meglio non dare la versione del sistema operativo


1

Nel mio caso questo è successo, quando ho selezionato un dispositivo iOS generico e ho provato a "costruirlo" per pubblicarlo su AppStore.
Ma avrei dovuto selezionare Prodotto -> Archivia invece


0
  1. Ho richiesto un nuovo AppleID e l'ho aggiunto a "Xcode-> Preferenze-> Account" per risolvere questo problema. (Xcode 7.3)
  2. Allo stesso tempo ho cancellato l'ID Apple originale in "Xcode-> Preferenze-> Account", perché non era più un account a pagamento e non poteva aggiungere nuovi dispositivi.

0

Le cose di xcodebuild non funzionavano nel mio caso.

Ecco cosa ho risolto.

Ho rimosso il mio account Apple e reimpostato (login) sulla preferenza xcode, e questo è stato risolto.

ps. su iPhone 10.1, dovevo premere il pulsante Trust su Generali> Gestione dispositivo> Informazioni account> App Trust


0

Ho risolto questo problema per l'emulatore,

Per prima cosa controlla l'elenco degli emulatori

Finestra> Dispositivi e simulatori

dopo aver scelto qualsiasi dispositivo e fare clic su controlla versione del sistema operativo

Se hai solo il sistema operativo Apple Watch, dovresti scaricare il nuovo IOS Simulator

e fai clic su Scarica altri tempi di esecuzione del simulatore ..

scegli il tuo simulatore IOS corretto e scaricalo.


0

Ho risolto questo problema andando alle impostazioni del progetto e nella sezione "Obiettivi" ho dovuto impostare l'obiettivo dei test sul team corretto.


0

Bene, se vuoi ottenere l'elenco delle destinazioni disponibili, chiama xcodebuild e passa l'opzione della riga di comando -showdestinations, e stamperà opzioni valide tra cui scegliere:

xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget

0

Ho provato quasi tutto sopra, incluso il riavvio di XCode, nessuno di loro ha funzionato per me. Ho risolto questo problema semplicemente riavviando il mio Mac . Sì, la soluzione classica.

Una nota a margine: questo problema si è verificato al mio XCode dopo che mi ha richiesto la password del mio Mac, probabilmente dopo un aggiornamento automatico.


0

Per xcode v11:

Ho riscontrato questo problema durante il tentativo di creare un archivio del mio progetto. Stavo cercando di fare clic su "Crea" quando il dispositivo era impostato su "Dispositivo iOS generico", ma i passaggi corretti erano:

  1. Imposta il dispositivo su "Dispositivo iOS generico"
  2. Vai a Prodotto -> Archivio ( salta premendo Build! )

0

Ho riscontrato lo stesso messaggio di errore. Ecco cosa ho vissuto e fatto finora;

Passaggio 1: controlla il tuo obiettivo.

Il mio obiettivo attuale è IOS 13.2. Da qui, non vedrai quali versioni hai attualmente sulla tua macchina.

inserisci qui la descrizione dell'immagine

Passaggio 2: controlla le versioni disponibili sul tuo locale

  • Fare clic sul dispositivo IOS generico

inserisci qui la descrizione dell'immagine

  • Verrà visualizzato un menu a discesa che contiene un download simulatori ... selezione
  • Nel caso in cui la selezione Scarica simulatori ... non sia visibile, è necessario abbassare il target. Nel mio caso, da 13.2 ho fatto 13.0 (questo dipende dal tuo XCode attuale), quindi ripeti il passaggio 2 nuovo
  • Da qui, ora posso vedere i simulatori di download ... selezione
  • Selezionalo

inserisci qui la descrizione dell'immagine

  • Ora vedrai quali sono le versioni disponibili che hai
  • Da qui, puoi scegliere di scaricare o semplicemente utilizzare la versione che hai (quella selezionata)

inserisci qui la descrizione dell'immagine

Passaggio 3: modifica di conseguenza il tuo target IOS

  • Ora che sai già quali sono le versioni disponibili del simulatore che hai localmente, ora puoi cambiare il target IOS.
  • Nel mio caso scelgo di utilizzare IOS 11 (solo per questo campione)
  • Poi cambio il target

inserisci qui la descrizione dell'immagine

  • Fare nuovamente clic sul dispositivo IOS generico

inserisci qui la descrizione dell'immagine

  • Da qui, ora puoi selezionare qualsiasi simulatore sotto quell'IOS

inserisci qui la descrizione dell'immagine

Non sono un esperto, volevo solo condividere la mia esperienza e spero che questo possa aiutare qualcuno.


-1

Ho avuto un problema completamente diverso. Per qualche motivo la mia app " Dispositivi " era impostata su Universal build anziché su iPhone . Quando sono passato all'iPhone, tutto ha funzionato. Non avevo bisogno di impostazioni extra.


-2

Questo ha funzionato per me.

Stai tentando di eseguire su un dispositivo quando l'hai già creato per uno schema diverso. Vai a

Prodotto> Clean.

Quindi crea con il tuo dispositivo scelto dagli schemi attivi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.