Después de actualizar a Xcode 5.1, ya no puedo construir mi proyecto para el simulador de 64 bits, recibiendo este error:
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
Estas son mis configuraciones de compilación de destino:
Intenté cambiar "Construir arquitectura activa" a No, así como agregar "i386" a las "Arquitecturas válidas", desafortunadamente ninguno funcionó. Gracias por cualquier sugerencia!
Respuestas:
Recibí 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:
fuente
Lo que debe hacer es configurarlo
ONLY_ACTIVE_ARCH
enNO
(al menos funciona para mí). A continuación hay una captura de pantalla para ello:EDITAR:
Por lo que yo sé ( por favor señalarlo si hay algo mal, gracias ), si se establece
ONLY_ACTIVE_ARCH
queYES
, significa que la única Xcode construirá para la arquitectura activa (que se refiere al dispositivo que está activa actualmente en Xcode). Parece que la configuración predeterminada de Xcode está establecida en DepuraciónYES
, por lo que no generará binarios para otras arquitecturas cuando solo desee compilar para un dispositivo especial que se conectó a su Mac.La razón por la que no se pudo construir es que el proyecto no es compatible con la arquitectura del dispositivo que conectó. Entonces, la mejor solución es agregar la arquitectura correcta para su dispositivo. A continuación se muestra una lista de arquitecturas y dispositivos compatibles:
iPhone 6
,iPhone 5s
,iPad Air
,Retina iPad Mini
iPhone 5
,iPhone 5c
,iPad 4
iPhone 3GS
,iPhone 4
,iPhone 4S
,iPod 3G/4G/5G
,iPad
,iPad 2
,iPad 3
,iPad Mini
iPhone
,iPhone 3G
,iPod 1G/2G
Así que por qué "Establecer el
ONLY_ACTIVE_ARCH
aNO
" obras? Debido a que el dispositivo aún puede ejecutar el binario que se creó para todas las arquitecturas que agregó (pasar la compilación), pero perderá algo de rendimiento. Esta es solo una solución rápida, pero no la mejor.Nota : Cuantas más arquitecturas haya agregado, mayor será el binario generado. Por lo tanto, es bueno elegir las arquitecturas adecuadas para su proyecto. ;)
fuente
Añadir
arm64
al objetivovalid architectures
. Parece que también agregax86-64
arquitectura a las arquitecturas válidas del simulador.fuente
Si está utilizando CocoaPods, el problema más probable es que la configuración de compilación del proyecto Pods para Build Active Architecture Only está establecida en Sí para depuración.
La solución es simple. Cámbielo a no .
Del mismo modo, cambie a No para su proyecto de aplicación.
fuente
Tuve un problema similar. Lo resolvió cambiando "Arquitectura" a " $ (ARCHS_STANDARD_32_BIT) " en Configuración de compilación para el proyecto.
Ahora, debe seleccionar arquitecturas estándar (armv7, arm64) - $ (ARCHS_STANDARD) ya que Apple recomienda que las aplicaciones se construyan en una arquitectura de 64 bits. Haga clic en: documento de Apple
fuente
$(ARCHS_STANDARD_INCLUDING_64_BIT)
?$(ARCHS_STANDARD_32_BIT)
o$(ARCHS_STANDARD_INCLUDING_64_BIT)
?Añadir: Arquitecturas: $ (ARCHS_STANDARD_INCLUDING_64_BIT)
Arquitecturas válidas: arm64 armv7 armv7s
fuente
Por si acaso, para cualquiera que todavía encuentre el problema a pesar de seguir lo anterior, verifique que el simulador que está ejecutando también sea compatible. Tenía el mío especificado para arm7 y arm7s, pero estaba tratando de ejecutar la aplicación en un simulador de 64 bits.
fuente
Para evitar que se reinicie "pod install" only_active_arch para depurar cada vez que se ejecuta, puede agregar lo siguiente a su archivo pod
fuente
Simplemente agregue arm64 en una arquitectura válida. Espero que funcione para usted.
fuente
Mi problema era que el proyecto Pods estaba dirigido a OS X, a pesar de que mi Podfile lo tenía
platform :ios
. Estoy usando cocoapods 0.35.0.rc2.Para solucionarlo, seleccione el proyecto Pods en el navegador de proyectos y verifique que el nodo PROYECTO Pods (tenga en cuenta, no el objetivo de Pods) esté dirigido a iOS. Es decir, la configuración de construcción de arquitecturas debe ser:
$(ARCHS_STANDARD)
iOS 8.1
iOS
$(ARCHS_STANDARD)
También quería construir todas las arquitecturas, así que agregué lo siguiente al Podfile:
fuente
Tuve que agregar lo siguiente
i386
yx86_64
paraValid Architectures
. Estoy ejecutando Xcode 7.2 y apunto a iOS 8+. Ya teníaarmv7
,armv7s
yarm64
allí y eso estaba funcionando en Xcode 6.4.fuente
Enfrenté el mismo problema al ejecutar mi aplicación en iPad usando xcode 5.1. Se resolvió eliminando armv7s de 'arquitecturas válidas' y estableciendo el valor 'construir arquitecturas activas solo' en No. Ambos campos se pueden encontrar en su aplicación-> objetivos-> configuración de construcción-> arquitecturas.
fuente
Llegué a esta pregunta debido a un problema con la construcción de la línea de comandos para el simulador en Xcode 7.2. En caso de que alguien más llegue aquí con el mismo problema, compartiré la solución que encontré:
Aparentemente hay un error en Xcode 7.2 que causa
xcodebuild
un error al intentar construir para el simulador. La solución es especificar la opción "-destination", por ejemplo:Actualizar
El comando de ejemplo anterior creará un binario que incluye los gráficos solo para iPhone 6. Si el binario se ejecuta en otros simuladores, los gráficos del iPhone 6 se escalan a la plataforma. Una mejor solución que contiene todos los gráficos para todas las plataformas es especificar el parámetro
PLATFORM_NAME=iphonesimulator
, por ejemplo:fuente
Intente eliminar todas las arquitecturas anteriores (es decir, elimine la configuración ARCHS_STANDARD) al mismo tiempo que agrega i386 a las arquitecturas. Esto debería cambiar la arquitectura activa a i386. Encontré un problema similar cuando intenté compilar para armv7 de forma predeterminada, pero seguía intentando compilar para arm64. Cambié ARCHS_STANDARD a ARCHS_STANDARD_32_BIT, y esto cambió la arquitectura activa elegida.
fuente
En arquitectura, a veces para soportar 6.0 y 7.0, excluimos arm64
En arquitecturas -> arquitectura - seleccione arquitectura estándar arm64 armv7 armv7s. Justo debajo, en Arquitectura válida, se incluye el usuario arm64 armv7 armv7s. Esto funcionó para mí.
fuente
Resolví este problema usando la respuesta de @ Kjuly y la línea específica:
"La razón por la que no se pudo construir es que el proyecto no es compatible con la arquitectura del dispositivo que conectó".
Con Xcode cargado, configura automáticamente mi aplicación de iPad en iPad Air
Esto causó el error de análisis de dependencia.
Cambiar el tipo de dispositivo resolvió el problema de inmediato:
No sé por qué esto funciona, pero esta es una respuesta muy rápida que me ahorró mucho tiempo en el fondo y al instante puso a prueba la aplicación. Nunca hubiera pensado que esto podría ser una cosa y algo tan simple lo arreglaría, pero en este caso lo hizo.
fuente
Descubrí que era necesario ingresar los nombres de arquitectura a mano:
No sé por qué esto era necesario, es decir, por qué estos valores no se heredaron del propio Xcode. Pero tan pronto como hice esto, el problema desapareció.
fuente
En arquitecturas válidas: seleccione cada entrada (versión, depuración) y compile y presione la tecla de retroceso. Deberia de funcionar
fuente