No se puede usar un dispositivo de solo compilación para ejecutar este objetivo

85

Recibo este error cuando intento probar una aplicación.

No se puede utilizar un dispositivo de compilación para ejecutar este objetivo.

No hay dispositivos iOS compatibles disponibles. Conecte un dispositivo para ejecutar su aplicación o elija un dispositivo simulado como destino.

yrpalnoob
fuente
Si usa un dispositivo y tiene su cuenta de desarrollador de Apple, elimine la aplicación de su dispositivo y luego ejecútela.
BollMose

Respuestas:

78

agregar -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'a tuxcodebuild

Quver
fuente
7
Explicación: Xcode intenta compilar con el dispositivo iOS genérico, pero la prueba debe realizarse en el simulador.
Adriana
7
Un comando completo y funcional:xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
Jianxin Gao
/ usr / bin / xcodebuild es un archivo binario. Probablemente no debería modificarlo.
Per Quested Aronsson
¿Por qué quieres modificarlo?
Quver
No es necesario agregar esto a xcodebuild. Todo lo que necesita es ejecutar este comando con parámetros
Quver
44

Quizás el Esquema haya cambiado a un dispositivo genérico. Intente elegir nuevamente el dispositivo conectado desde el menú Esquema:

Imagen del menú

Señal
fuente
18

Abajo esta mi camino

Seleccione proyecto -> General -> Información de implementación -> Destino de implementación -> elija una versión inferior ingrese la descripción de la imagen aquí

米米米
fuente
1
Este caso es útil cuando importa un proyecto con un objetivo de implementación más alto que su objetivo de implementación local,
reducirlo
7

Me encuentro con un problema de que solo se puede elegir "Dispositivo iOS genérico". y cuando lo ejecuto, dice "No se puede usar un dispositivo de compilación solo para ejecutar este destino. No hay dispositivos iOS compatibles disponibles. Conecta un dispositivo para ejecutar tu aplicación o elige un dispositivo simulado como destino".

y mi solución para el problema es seleccionar Build Settings ---> Deployment -----> IOS Deployment Target ----> elige una versión inferior como 8.0,

y encontré que el simulador salió y se puede elegir.

Mr.yl
fuente
¿Tiene instalados simuladores con una versión más reciente del sistema operativo? Vaya a Xcode -> Preferencias -> Descargas para ver la lista de tiempos de ejecución de simuladores heredados compatibles.
Lepidopteron
7

Necesita obtener una lista de destinos válidos. Para hacer esto, especifique un par clave-valor erróneo y xcodebuild escupirá las combinaciones que funcionan:

Comando Listar destinos

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

Ejemplo de salida

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

Cambiar dos puntos por signos iguales, eliminar espacios, ignorar la identificación

Entonces, si desea utilizar este destino:

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

Cambie los dos puntos por comas, elimine los espacios, elimine la ID, para obtener esta cadena:

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

Entonces el comando completo sería:

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

Está compilando para el "Dispositivo solo de compilación" de Xcode, que está compilando la aplicación. para el procesador ARM (mientras que la compilación para el simulador apunta a la CPU Intel en su Mac).

Conecte un dispositivo y selecciónelo de la ventana emergente de esquema activo, o seleccione uno de los simuladores y estará listo.

Walt
fuente
Yo no llamo a mí mismo una torre porque soy bueno en estas cosas ... Gracias 2 horas desperdiciado ja ....
yrpalnoob
3

Con XCode 8.3.2 recibí este mensaje de error después de intentar ejecutar la aplicación en un dispositivo bloqueado. Desbloqueé y volví a conectar según lo solicitado, pero "No se puede usar un dispositivo de compilación solo para ejecutar este objetivo". apareció el mensaje.

Simplemente cambié el objetivo a un simulador y lo volví a cambiar; resolvió mi problema.

catanorar
fuente
2

Por lo que vale, si obtiene el error A build only device cannot be used to run this targety ve en el navegador de problemas este texto:


Integridad de destino de ProjectName : el
destino de implementación de iOS 'XX.X' es
más reciente que el SDK 'iOS YY.Y' en el nombre de proyecto de
destino

entonces el problema es que el proyecto requiere un SDK de iOS más nuevo que el que tiene disponible su versión de Xcode. Encontrará este problema en, por ejemplo, proyectos que aprovechan las funciones nuevas / beta del SDK de iOS, como ARKit.

La solución es descargar la versión beta más reciente de Xcode , que debería ser compatible con el SDK de iOS no público que requiere la aplicación. Si tiene el último Xcode, intente encontrar el iOS de destino en Preferences -> Components -> Simulators.

Daniel R. Livingston
fuente
2

Si está utilizando cordova / Ionic, vaya a Productos -> Destino-> Elija el objetivo y vuelva a ejecutar

BenjaBoy
fuente
1

Modificación de la respuesta de @ Quver. Con la última versión de Xcode (8.3), los parámetros del comando de destino deben estar entre comillas dobles. Las comillas simples no funcionaron para mí

agregar -destination "platform=iOS Simulator,name=iPhone 7"a tuxcodebuild

No he mencionado la versión del sistema operativo en el comando anterior porque cuando se lanza una versión más nueva de iOS, este comando mostrará un error que indica que no se encuentra este dispositivo. Entonces es mejor no dar la versión del sistema operativo

Arun
fuente
0
  1. Solicité un nuevo AppleID y lo agregué a "Xcode-> Preferences-> Account" para resolver este problema. (Xcode 7.3)
  2. Al mismo tiempo, eliminé el AppleID original en "Xcode-> Preferences-> Account", porque ya no era una cuenta paga y no podía agregar nuevos dispositivos.
Zack Zhang
fuente
0

Las cosas de xcodebuild no funcionaban en mi caso.

Esto es lo que resolví.

Eliminé mi cuenta de Apple y restablecí (inicio de sesión) en la preferencia xcode, y esto se resolvió.

PD. en el iPhone 10.1, necesitaba presionar el botón Confiar en General> Administración de dispositivos> información de cuenta> Aplicación de confianza

jungwon jin
fuente
0

Solucioné este problema para el emulador,

Primero revisa tu lista de emuladores

Ventana> Dispositivos y simuladores

después de elegir cualquier dispositivo y haga clic en verificar la versión del sistema operativo

Si solo tiene Apple Watch OS, debe descargar el nuevo IOS Simulator

y haga clic en descargar más tiempos de ejecución del simulador.

elija su simulador IOS correcto y descárguelo.

Berat Eyüboğlu
fuente
0

Solucioné este problema yendo a la configuración del proyecto y, en mi sección 'Objetivos', tuve que establecer el objetivo de las Pruebas en el equipo correcto.

Señor fresco
fuente
0

Bueno, si desea obtener la lista de destinos disponibles , llame a xcodebuild y pase la opción de línea de comando -showdestinations, e imprimirá opciones válidas para que elija:

xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget
C Johnson
fuente
0

Intenté casi todo lo anterior, incluido reiniciar XCode, ninguno de ellos funcionó para mí. Resolví este problema simplemente reiniciando mi Mac . Sí, la solución clásica.

Una nota al margen: este problema se produjo en mi XCode después de que me solicitara la contraseña de mi Mac, probablemente después de una actualización automática.

Ted
fuente
0

Para xcode v11:

Me encontré con este problema al intentar crear un archivo de mi proyecto. Estaba intentando hacer clic en "Construir" cuando el dispositivo estaba configurado en "Dispositivo iOS genérico", pero los pasos correctos fueron:

  1. Establecer el dispositivo en "Dispositivo iOS genérico"
  2. Vaya a Producto -> Archivo (¡ omita presionar Crear! )
Filósofo torpe
fuente
0

En mi caso, esto sucedió cuando seleccioné un dispositivo iOS genérico e intenté "compilar" para publicarlo en la AppStore.
Pero debería haber seleccionado Producto -> Archivar en su lugar

Leo Droidcoder
fuente
0

Encontré el mismo mensaje de error. Esto es lo que he experimentado e hecho hasta ahora;

Paso 1: comprueba tu objetivo.

Mi objetivo actual es IOS 13.2. Desde aquí, no verá qué versiones tiene actualmente en su máquina.

ingrese la descripción de la imagen aquí

Paso 2: verifique las versiones disponibles en su local

  • Haga clic en el dispositivo IOS genérico

ingrese la descripción de la imagen aquí

  • Esto mostrará un menú desplegable que contiene una selección de Descargar simuladores ...
  • En caso de que la selección Descargar simuladores ... no esté visible, debe reducir su objetivo. En mi caso, de 13.2 lo hice 13.0 (esto depende de su XCode actual) luego repita el Paso 2 nuevamente
  • Desde aquí, ahora puedo ver la selección Descargar simuladores ...
  • Seleccionarlo

ingrese la descripción de la imagen aquí

  • Ahora verá cuáles son las versiones disponibles que tiene
  • Desde aquí, puede optar por descargar o simplemente usar la versión que tiene (la que está seleccionada)

ingrese la descripción de la imagen aquí

Paso 3: cambie su objetivo IOS en consecuencia

  • Ahora que ya sabe cuáles son las versiones disponibles del simulador que tiene localmente, ahora puede cambiar el objetivo de IOS.
  • En mi caso, elijo usar IOS 11 (solo para esta muestra)
  • Entonces cambio el objetivo

ingrese la descripción de la imagen aquí

  • De nuevo, haga clic en el dispositivo IOS genérico

ingrese la descripción de la imagen aquí

  • Desde aquí, ahora puede seleccionar cualquier simulador bajo ese IOS

ingrese la descripción de la imagen aquí

No soy un experto, solo quería compartir mi experiencia y espero que esto pueda ayudar a alguien.

newProgramm3r
fuente
-1

Tuve un problema completamente diferente. Por alguna razón, mi aplicación " Dispositivos " se configuró para compilación universal en lugar de iPhone . Cuando lo cambié a iPhone, todo funcionó. No necesitaba ninguna configuración adicional.

Amir J
fuente
-2

Esto funcionó para mí.

Está intentando ejecutar en un dispositivo cuando ya lo creó para un esquema diferente. Ir

Producto> Limpiar.

Luego construya con su dispositivo elegido de los esquemas activos.

C. Walther
fuente