Cómo comstackr para las architectures armv6 y armv7 con iOS 5

En iOS5 Apple descarta la architecture de armv6 de ARCHS_STANDARD_32_BIT .

Para mantener el soporte para iPhone3G , todavía quiero comstackr en armv6 incluso en iOS5.

¿Alguien encontró una solución para esto?

Acabo de crear algo hoy que especifica un objective de implementación de iOS 4.0. Con solo armv7 especificado en Architectures, Xcode me advirtió que para soportar cualquier cosa por debajo de iOS4.2 tenía que incluir armv6 en Architectures. Simplemente edite ese campo, haga clic en el botón “+” cuando aparezca el cuadro de diálogo e ingrese el literal “armv6”.

En mi caso, queremos que nuestra aplicación funcione en iOS4 e iOS5. Tuvimos que hacer algunas modificaciones para que funcione correctamente en iOS5, pero todos esos cambios se hicieron con cambios de código compatibles con iOS4.

También agregamos algunas capacidades específicas de iOS5 de una manera que permite que la aplicación se ejecute sin fallar en iOS4. Específicamente, probamos las capacidades de iOS5 antes de intentar usarlas, y las bibliotecas vinculadas con iOS5 como Opcionales.

Por lo tanto, admitir iPhone3G en un mundo iOS5 podría significar “queremos que nuestra aplicación se ejecute en iOS4 y superior (sin importar el uso de la función iOS5)” en lugar de “queremos asegurarnos de que nuestra aplicación se ejecute en un dispositivo anterior que ejecute iOS5”. “. Hay una diferencia aquí; Piénsalo. 🙂

De todos modos, agregar soporte de armv6 nuevamente es muy fácil. Y supongo que el punto es el siguiente: en algún momento, cuando ya no haya más dispositivos armv6 por los que preocuparse (por el motivo que sea), no tendrá que construir para ello. La opinión de Apple es que todos deberían actualizar al último hardware lo antes posible. Entonces, en ese mundo, no hay necesidad de que las herramientas dejen de usar todo lo que no sea lo último y lo mejor. 🙂 Afortunadamente (o no), nosotros los desarrolladores vivimos en el mundo real y reconocemos que tienes que soportar cosas más antiguas por un tiempo. Y supongo que el equipo de desarrollo de Xcode también lo sabe, por lo que puede agregar de nuevo la ayuda de armv6.

La respuesta simple es que debe cambiar la configuración actual de “Estándar (armv7) – $ (ARCHS_STANDARD_32_BIT)” para que sea simplemente “armv6” y “armv7”. Ver la imagen a continuación. Tienes que borrar la línea con la configuración anterior para que funcione.

Configuraciones correctas para armv6 y armv7

también asegúrate de configurar esto en Project Y Targets … me costó una hora averiguarlo. lo había establecido para uno pero no para el otro. espero que esto ayude. GLTA

Creo que hay una razón por la cual Apple eliminó a armv6 de la configuración estándar.

He comstackdo armv7 / armv6 con iOS5 SDK, sin embargo, el comstackdor armv6 produjo código incorrecto en modo de lanzamiento. Después de horas de encontrar una solución (probando llvm o gcc con diferentes niveles de optimización) me rindo.

Por lo tanto, volveré a iOS SDK 4.x siempre y cuando admita los dispositivos más antiguos de armv6.

Ejemplo de código:

// myView center=(160, 100) CGPoint p=myView.center; // now p=(100,100) (what the heck?) px=myView.center.x; py=myView.center.y; // now p=(160,100) p.y+=100; // now p =(200,200) (what the heck?) 

Sin embargo, tal vez tenga algo de corrupción en la memoria, en el comstackdor armv7 y en iOSSDK <5.0 se comporta como se esperaba.

Atentamente

No estoy seguro de si esto es realmente una solución, pero he descubierto que reemplazar la cadena definida en “architectures”, que era $ (ARCHS_STANDARD_32_BIT), con “armv6 armv7” me permitió comstackr con iOS5 como base e iOS4 como implementación objective, y pasar la validación

No estoy utilizando ninguna biblioteca o llamadas exclusivas de IOS5, pero tengo la intención de hacerlo en mi próximo lanzamiento.

No tuve que reemplazar $ (ARCHS_STANDARD_32_BIT) con solo armv7 para que la aplicación se compile y se cargue en la App Store.

Como sugirió MarkGranoff, simplemente agregué armv6 como texto sin formato, pulsando “más” y simplemente escribiéndolo en la línea dos.