139 votos

Xcode 5.1 - No hay arquitecturas para compilar para (ONLY_ACTIVE_ARCH = SÍ, arco activo = x86_64, VALID_ARCHS = i386)

Después de actualizar a Xcode 5.1, ya no puedo construir mi proyecto para el simulador de 64 bits, que recibe este error:

  No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
 

Estos son mis valores de creación de destino:

Configuración de generación de destino Xcode

Traté de cambiar "Construir Arquitectura Activa" No, así como la adición de "i386" a las "Arquitecturas válidos", por desgracia no funcionó. Gracias por todas las sugerencias!

157voto

Kjuly Puntos 15089

Lo que usted necesita hacer es establecer el ONLY_ACTIVE_ARCH a NO (al menos a mi me funciona). A continuación es una captura de pantalla:

e918pG7.png


EDICIÓN:

Que yo sepa (por favor, señale si hay algo mal, gracias), si establece ONLY_ACTIVE_ARCH a YES, significa que el Xcode construirá sólo para los activos de la arquitectura (que se refiere al dispositivo que se activa en Xcode en la actualidad). Parece Xcode la configuración predeterminada es el conjunto de Debug YES, por lo que no generan binarios para otras arquitecturas, cuando sólo se desea construir un dispositivo especial que se conecta a tu Mac.

La razón no se pudo construir podría ser que, el proyecto no admite la arquitectura de los dispositivos conectados. Así que la mejor solución es añadir la arquitectura adecuada para su dispositivo. A continuación se muestra una lista de las arquitecturas y los dispositivos compatibles:

  • ARMv8/ARM64: iPhone 5s, iPad Air, Retina iPad Mini
  • ARMv7s: iPhone 5, iPhone 5c, iPad 4
  • ARMv7: iPhone 3GS, iPhone 4, iPhone 4S, iPod 3G/4G/5G, iPad, iPad 2, iPad 3, iPad Mini
  • Binarios armv6: iPhone, iPhone 3G, iPod 1G/2G

Entonces, ¿por qué pone"la ONLY_ACTIVE_ARCH a NO" obras? Debido a que el dispositivo puede ejecutar el binario construido para todas las arquitecturas que añadió (paso de la compilación), pero se pierde algo de rendimiento. Esta es sólo una solución rápida, pero no mejor.


Nota: Las más de las arquitecturas agregó, el más grande es el binario será generada. Por eso es bueno elegir el derecho de las arquitecturas para su proyecto. ;)

86voto

Mike Puntos 576

Yo tenía el mismo mensaje de error después de actualizar a XCode 5.1. Estás usando CocoaPods? Si es así, esto debería solucionar el problema:

  1. Eliminar los "Pods" de proyecto del área de trabajo en el panel de la izquierda de Xcode y cerca de Xcode.
  2. Ejecutar "pod instalar" desde la línea de comandos para recrear el "Vainas" de proyecto.
  3. Re-abrir Xcode y asegúrese de que "Construir Activo Arquitectura Sólo" está ajustado a "No" en la configuración de generación tanto de los "Pods" de proyecto y en su propio proyecto.
  4. Limpiar y construir.

25voto

samwize Puntos 4144

Si está utilizando CocoaPods, el problema más probable es que su proyecto Vainas Construir Ajustes para Construir la arquitectura de Active Sólo se establece en para depuración.

La solución es simple. Cambie a No.

Del mismo modo, cambiar a No para su proyecto de aplicación.

23voto

xardas Puntos 176

Añadir arm64 al del objetivo valid architectures . Parece que añade x86-64 arquitectura de simulador de arquitecturas válidos también.

11voto

Jayprakash Dubey Puntos 1194

Tuve problema similar. Lo tengo resuelto cambiando "Arquitectura" a "$ (ARCHS_STANDARD_32_BIT)" en la configuración de generación de Proyecto.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: