Ha pasado un tiempo desde que tuve que ajustar la configuración de construcción del proyecto. Después de actualizar a un SDK reciente, tengo problemas para crear mi configuración de distribución ad hoc.
Build genera esta advertencia y error:
advertencia: las aplicaciones de iPhone deben incluir una arquitectura armv6 (ARCHS actual = "armv7")
iPhone / iPod Touch: a la aplicación ejecutable le falta una arquitectura requerida. Al menos una de las siguientes arquitecturas debe estar presente: armv6 (-19033)
Sin embargo, en mi proyecto pensé que tenía las cosas configuradas correctamente:
- Arquitecturas es: Estándar (armv6 armv7)
- Base SDK: iOS más reciente (actualmente configurado en iOS 4.2)
- Arquitecturas válidas: armv6 armv7
He limpiado todos los objetivos.
Agradezco cualquier consejo.
Respuestas:
Si usa Xcode 4.2 o superior, intente lo siguiente:
Haga clic en el nombre del Proyecto (en la columna izquierda), seguido del Destino:
Haga clic en la pestaña 'Configuración de compilación' (en la columna derecha):
Haga clic en la fila 'Versión' o 'Distribución' en 'Arquitecturas' y elija 'Otro ...':
Haga doble clic en la fila resaltada llamada '$ (ARCHS_STANDARD_32_BIT)' en el popover que aparece, y reemplácela escribiendo 'armv6'. Luego agregue una nueva fila con el botón más en la parte inferior izquierda del menú emergente, escriba 'armv7', luego haga clic en Listo:
Actualización: también debe agregar armv7s para apuntar al iPhone 5. (Y suelte armv6 si está compilando con Xcode 4.5 o superior, que ya no es compatible con armv6).
Eso es. Ahora debería poder compilar / archivar sin generar errores.
Si todavía no funciona, vea esta respuesta de justinxreese , que sugiere agregar entradas para armv6 y armv7 en "Capacidades requeridas del dispositivo" en su archivo info.plist.
fuente
Si desmarca "Construir solo arquitectura activa", generará todas las arquitecturas válidas.
Actualización : Esto ya no es aplicable a partir de Xcode 4: siga las instrucciones de Nick para Xcode 4 y versiones posteriores.
fuente
Tuve este problema incluso después de seguir la respuesta aceptada y encontré que lo siguiente funcionaba:
En su Info.plist, agregue una entrada para las Capacidades requeridas del dispositivo. Esto debería ser una matriz y tendrá dos entradas.
Se verá así:
fuente
Además de la respuesta de Nick sobre Xcode 4.2, es posible que también deba revisar su archivo info.plist. Parece que los nuevos proyectos iniciados en Xcode 4.2 por defecto especifican 'armv7' en 'Capacidades requeridas del dispositivo'. Deberá eliminar esto si desea admitir dispositivos que ejecutan armv6 (por ejemplo, el iPhone 3G).
Elimine armv7 de las 'Capacidades requeridas del dispositivo' en suProjectName-Info.plist
fuente
Una actualización de ios 6
Cambios en Xcode 4.5.x para ios 6
fuente
Yo tuve este problema también. Acabo de establecer mi objetivo de implementación en 4.3 y dejé solo la arquitectura armv7 y funcionó. En el punto, casi todos tienen 5, entonces 4.3 está bien.
fuente
Para mí no funciona con cada respuesta. pero trato de OBJETIVOS> Arquitecturas> Depurar y agrego una nueva fila con el botón más, y escribo 'armv6' (sin '), luego hago clic en Listo.
y finalmente CMD + B y luego haga clic derecho en PrjectName.app (en la carpeta Productos)> Abrir en Finder> Comprima "PROJECT_NAME.APP" (en Debug-iphoneos)> Cargar en AppStore
Es mi configuración de pantalla.
si tiene un proyecto de inclusión, configúrelo todo. Espero tu ayuda.
fuente
Después de probar una mezcla de estas respuestas, finalmente me topé haciendo que funcionara. Estoy tan enojado con Apple en este momento. Solo una hora más me hicieron perder. Aquí está mi configuración.
fuente
Intenté todas las respuestas anteriores, ninguna resolvió mi pregunta. Entonces creo un nuevo proyecto y difundo las configuraciones de compilación una por una. Solo los "Archivos de permisos alternativos" son diferentes. La construcción del proyecto fallida tiene un valor armv7. Eliminarlo y luego limpiar-> construir-> archivo. ¡Tener éxito! La esperanza puede resolver tu pregunta
fuente
Wow, actualizo / envío aplicaciones aproximadamente cada 6 meses. Cada vez que hago esto tengo que aprender la "nueva" forma de hacerlo ...
Los mismos problemas descritos anteriormente cuando se ejecuta iOS 5.1 y Xcode 4.3.2
Gracias por los mensajes! Pasé un tiempo actualizando todas las configuraciones del proyecto a armv6, armv7, pero no fue un placer. Cuando configuré "compilar arquitectura activa solamente" en No, recibí un error de compilación al colocar ambos objetos en el mismo directorio.
Afortunadamente, noté que estaban modificando la configuración de compilación de destino. Esto es lo que finalmente funcionó (armv6, armv7 y establecer "construir arquitectura activa solamente" en No en la Configuración de compilación de destino). Como descargo de responsabilidad, ya había configurado todas las arquitecturas en armv6, armv7 en la configuración del proyecto también.
De todos modos, gracias por la ayuda, Brent
fuente
Tenía que asegurarme de cambiar estas configuraciones en las configuraciones de Target y Project en xCode 4.3.2 después de hacer eso y configurarlo para construir tanto para armv6 como para armv7 en todos los lugares donde pude enviar mi aplicación.
Para una medida segura, también salí de xCode entre hacer los cambios y hacer un ciclo de limpieza, compilación y archivo.
fuente
Todo un problema doloroso para mí también. Acabo de pasar aproximadamente una hora tratando de construir y reconstruir, no es una alegría. Al final tuve que hacer esto:
Supongo que es un montón de jerga sobre arm6, arm7, ya que parecía que mi proyecto era válido para ambos, al menos la configuración parecía decirlo), supongo que esta es una forma cínica de engañarnos con los tecnicismos, que no tenemos No lo entiendo, así que solo tomamos la opción fácil y apuntamos al último iOS (bueno para Apple con más personas actualizadas) ...
fuente
Aquí está la documentación de Apple:
Preguntas y respuestas técnicas QA1760
Dice que hay dos cosas que debes hacer bien:
armv6
a la configuración de compilación de ArquitecturaNo
.Si esto aún no lo ayuda, verifique que realmente está cambiando la configuración de compilación de la arquitectura para la configuración de compilación correcta: perdí media hora jugando con la incorrecta y preguntándome por qué no funcionó ...
Seleccione
Edit Scheme...
en el menú Producto, haga clic en el esquema "Archivo" en la lista de la izquierda y verifique la Configuración de compilación. Cambie el valor si no fue lo que esperaba.fuente
Nota; Tuve que realizar estos pasos tanto para mi proyecto base como para el archivo incorporado PhoneGap .xcodeproj en mi aplicación.
Sí, inserto PhoneGap; se actualizan con mucha frecuencia, y tengo menos de dos meses para saber que una característica se deprecia.
fuente
Intente cambiar su objetivo de implementación a algo más alto que un procesador armv6. La configuración de xCode hace referencia al nivel del sistema operativo, por ejemplo: iOS versión # {3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 5.1}
(i) Puede configurar esto en la pestaña de configuración de compilación o en la pestaña de resumen. Comience en la parte superior izquierda de la ventana en el Navegador de proyectos, con todos los archivos enumerados en ella. Haga clic en el que está más arriba que tiene un icono azul
(ii) Si planea utilizar el circuito de línea de sombreador programable, al que se accede y se controla a través de la API de OpenGL ES 2.0, debe configurar su "Versión de implementación" en aproximadamente 4.3, que creo que solo está disponible en dispositivos como el 3GS o más reciente. xCode informa que se necesita iOS 4.2.5 o superior ejecute el código armv7. Y una vez más, este procesador, creo, comenzó con el 3GS. * IOS 4.3 parece ser la opción para mí, por ahora.
http://theiphonewiki.com/wiki/index.php?title=Armv7
http://en.wikipedia.org/wiki/List_of_iOS_devices
fuente
Si xCode sigue quejándose de armv7, asegúrese de desconectar cualquier dispositivo conectado (¡especialmente el iPhone 5!) E intente nuevamente. Me tomó horas descubrir esa pequeña información.
fuente
Usando Xcode 4.2 en Snow Leopard, utilicé las siguientes configuraciones para crear una aplicación que funcionó tanto en armv6 (Iphone 3G y versiones anteriores) como en armv7 (todo más nuevo que 3G, incluido 3GS).
no ponga armv7 en las capacidades requeridas del dispositivo si desea que la aplicación se ejecute en 3G y versiones inferiores también.
fuente