2010-06-12 8 views
60

Avec iOS4 bientôt disponible, j'ai déjà prévu d'inclure un iAd dans une future mise à jour d'une de mes applications. Je suppose que cela rendra mon application inutilisable pour quiconque sur un firmware inférieur à 4.0. Existe-t-il un moyen de modifier ces variables et le fichier .xib en fonction du firmware de l'utilisateur? À la vôtre.Comment rendre l'application iPhone compatible avec plusieurs versions de SDK (firmware)

+1

C'est une question GREAT! Cependant, si j'avais la capacité, je modifierais le titre, certains. La question et la réponse sont EXACTEMENT ce que je voulais, mais je suis arrivé ici par un lien d'un lien de la question que je pensais initialement être le bon (ce n'était pas.) Suggérer: "Comment rendre l'application iPhone compatible avec les SDK précédents »ou similaire. – Olie

Répondre

71

Oui, vous pouvez construire avec le dernier SDK (c.-à-d.: 5.1) et toujours fonctionner sur des périphériques avec des versions antérieures du firmware (SDK).

  • Définissez votre Cible de déploiement sur la première version avec laquelle vous voulez pouvoir fonctionner, par exemple: 3.0.
  • Vous définissez votre SDK de base à la dernière version avec laquelle vous compilez, à savoir: 5.0. De cette façon, vous pouvez référencer les définitions et les symboles les plus récents dans votre code. Cet article "SDK and Deployment Targets" traite en détail du déploiement SDK de base.
  • Lien faible aux bibliothèques/frameworks avec des symboles uniquement disponibles dans le nouvel iOS. C'est ainsi que votre application fonctionnera sur un appareil qui n'a pas les nouveaux symboles. Vous devez check to see that a newer method is available avant de l'appeler. Vous devez vous assurer de ne pas appeler une méthode 5.0 ou 4.X uniquement lorsque votre application est sur un périphérique < 4.0. Bien sûr, vous devez gérer avec élégance les anciennes versions, soit en utilisant des méthodes plus anciennes, soit en ne prenant pas en charge des fonctionnalités particulières nécessitant une prise en charge plus récente du SDK.
  • NOUVEAU w/XCode 4.2: Pour supporter les périphériques plus anciens, vous devez add armv6 aux architectures de construction etremove armv7 du plist des capacités de l'appareil requis.

Voir ces questions et réponses SO pour plus de détails:

+1

Alors, qu'advient-il des méthodes du délégué de l'iAd? Vont-ils déclencher une erreur? –

+0

Oui, ils auraient une erreur. Vous ne pouvez pas afficher iAd sur quelque chose de plus bas que iOS 4. Vous devez faire une sorte de vérification ifdef conditionnelle pour que les iAds ne tentent pas d'apparaître sur iOS 3.x – JonB

+0

"Lien faible vers les bibliothèques/frameworks avec des symboles qui ne sont disponibles que dans le nouvel iOS. " Votre déclaration semble indiquer qu'il faut un lien faible Foundation et UIKit, etc, car ceux-ci contiennent également des symboles qui ne sont disponibles que sur iOS plus récent – user102008

Questions connexes