2011-10-18 11 views
5

Tengo problemas para encontrar buena información sobre el desarrollo con iOS 5 SDK/XCode 4.2 y puedo admitir dispositivos más antiguos, como el iPhone 3G.Explorando la fragmentación de dispositivos iOS antiguos/nuevos

Esencialmente acabo de comenzar con el desarrollo de iOS y he descargado xCode 4.2 que usa iOS 5 SDK. Lo que me preocupa es que he tenido un montón de problemas tratando de ejecutar un nuevo proyecto vanilla en mi iPhone 3G para probar la compatibilidad (es decir, el armv6 problem). Es bastante obvio que Apple quiere que construyamos para el hardware más nuevo. , pero tenemos la responsabilidad cuando se trata de apoyar a los usuarios de nuestras aplicaciones que todavía están ejecutando hardware más antiguo. Especialmente si quiere que su aplicación esté en la mayor cantidad de manos posible.

Por ejemplo, ARC suena como un dios enviado, pero no funcionará en las versiones de iOS por debajo de 4.3. También tuve buenas experiencias con Storyboards hasta que intenté instalar la aplicación en un dispositivo pre iOS5.

¿Hay alguna buena fuente de información sobre las mejores prácticas para tratar de admitir todos los dispositivos iOS? ¿Se trata simplemente de que los usuarios tengan que confesar que es hora de obtener un nuevo iPhone? ¿O se trata de desarrollar con los SDK anteriores hasta que solo estamos persiguiendo la larga cola? ¿Esta pregunta ya está persiguiendo la larga cola?

Es una reminiscencia de manera sutil de la fragmentación del soporte de los estándares del navegador. Esperamos escuchar los pensamientos de otras personas.

+0

Esto es un problema real. Lo mejor, y lo que quiero decir es lo que Apple recomienda, es siempre impulsar y dejar de lado el soporte para sistemas operativos más antiguos. Puedes ver eso en sus propias aplicaciones. iMovie y todo iWork ahora son solo iOS 5. No estoy de acuerdo con esto, aunque solo sea porque hay dinero para hacer que respalde los millones de dispositivos más antiguos que existen. Pero es por eso que no lo hacen fácil ... no les importa. Hay formas de evitarlo, pero tendrá que tener dispositivos a mano para probar y evitar actualizarlos. Es una verdadera carga para los desarrolladores más pequeños, seguro. –

+0

Absolutamente. ¿Conoces alguna fuente de información que sugiera la tendencia de disminución de los dispositivos más antiguos? – Chris

Respuesta

2

Puede reducir el objetivo de despliegue en la configuración de resumen de su destino para admitir una versión de sistema operativo menor. La advertencia es que el código aún se compila con el último SDK que haya instalado. Esto significa que no puede llamar a ningún método ni usar ninguna funcionalidad lanzada después de la versión más baja del sistema operativo que desea admitir. Si va a utilizar nuevos métodos para dispositivos que ejecutan una versión más reciente del sistema operativo, es necesario rodearlos de

if ([<class> respondsToSelector:@selector(methodName)] { 

} 

para asegurarse de que el método sólo se ejecutará en los dispositivos que lo soporten.

+1

Apple tiene documentación de técnicas similares aquí http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/cross_development/Using/using.html –

Cuestiones relacionadas