2010-06-12 9 views
60

Con el lanzamiento de iOS4 pronto, ya he planeado incluir un iAd en una futura actualización de una aplicación mía. Supongo que esto hará que mi aplicación sea inutilizable para cualquier persona con un firmware inferior a 4.0. ¿Hay alguna manera de cambiar esas variables y el archivo .xib en función del firmware del usuario? Saludos.Cómo hacer que la aplicación de iPhone sea compatible con múltiples versiones de SDK (firmware)

+1

Esta es una pregunta GRANDE! Sin embargo, si tuviera la capacidad, editaría el título, algo. La pregunta y la respuesta son EXACTAMENTE lo que quería, pero obtuve aquí un enlace de un enlace de la pregunta que originalmente pensé que podría ser la correcta (no lo era) Sugiere: "Cómo hacer que la aplicación de iPhone sea compatible con SDK anteriores "o similar. – Olie

Respuesta

71

Sí, puede compilar con el SDK más reciente (es decir: 5.1) y seguir ejecutándose en dispositivos con versiones anteriores del firmware (SDK).

  • Establezca su destino de implementación en la versión más antigua con la que desee poder ejecutar, es decir: 3.0.
  • Configure su Base SDK a la última versión con la que está compilando, es decir: 5.0. De esta manera, puede hacer referencia a las definiciones y símbolos más nuevos en su código. Este artículo "SDK and Deployment Targets" trata detalladamente el Despliegue vs Base SDK.
  • Enlace débil a las bibliotecas/marcos con símbolos que solo están disponibles en el iOS más nuevo. Esto es para que su aplicación se ejecute en un dispositivo que no tenga los símbolos más nuevos.
  • Debe llamar al check to see that a newer method is available antes de llamar. Debe asegurarse de no llamar a un método que sea 5.0 o 4.X solo cuando su aplicación esté en un dispositivo < 4.0. Por supuesto, debe manejar con gracia el trabajo en versiones anteriores, ya sea mediante el uso de métodos más antiguos o no admitiendo características particulares que necesitan una compatibilidad más reciente con SDK.
  • NUEVO w/XCode 4.2: para trabajar con dispositivos de mayor edad que necesita para add armv6 a las arquitecturas de construcción y remove armv7 del plist de capacidades de los dispositivos requeridos.

Ver estos SO preguntas y respuestas para más detalles:

+1

Entonces, ¿qué sucede con los métodos del delegado de iAd? ¿Lanzarán un error? –

+0

Sí, tendrían un error. No se puede mostrar iAd en nada inferior a iOS 4. Tendría que hacer algún tipo de comprobación ifdef condicional para que los iAd no intenten mostrarse en iOS 3.x – JonB

+0

"Débil enlace a las bibliotecas/marcos con símbolos que solo están disponibles en el iOS más nuevo ". Su afirmación parece indicar que uno debe vincular débilmente a Foundation y UIKit, etc., ya que estos también contienen algunos símbolos que solo están disponibles en el nuevo iOS – user102008

Cuestiones relacionadas