2013-02-24 4 views
0

J'ai une vieille application que je maintiens. L'application a d'abord été compilée sur XCode 4.2. Si je prends exactement le même projet que je trouve et que je le compile sur XCode 4.6, je vais avoir des bugs étranges tels que ViewControllers qui ne sont pas rafraîchissants, Back ne fonctionne pas comme il le devrait, etc. Si je prends le même projet et que je le recompile sur xcode 4.2 sur mon autre machine, tout ira bien. Avant de creuser dans le code, quelqu'un peut-il me donner une idée de ce qui pourrait arriver? Mon principal suspect est le SDK de base de chaque Xcode. Cela a-t-il du sens?Le projet est buggé après la mise à niveau Xcode

+1

Je ne pourrais pas vous dire s'il y aura une différence entre 4.0 et 4.2, mais historiquement les frameworks iOS * s'adaptent * légèrement en fonction de la version du SDK avec laquelle ils ont été compilés. Vous ne pouvez pas l'exclure. Et vous devriez le traiter comme des bogues dans votre application que les chemins de code touchés par l'ancien comportement mystérieusement ne frappent pas. –

+0

Est-il possible de changer le SDK de base dans XCode 4.6 en IOS 5 au lieu d'iOS 6.1? Cela me résoudrait beaucoup de problèmes – Segev

+2

Je soupçonne fortement que vous avez un problème dans votre code (bien que certains comportements dans iOS6 soient nouveaux ou fonctionnent différemment, c'est-à-dire la rotation automatique/mise en page automatique). Pourquoi ne pas modifier votre question pour inclure un exemple d'erreur et le code approprié? Vous aurez une bien meilleure chance de vous aider. –

Répondre

1

Je ne pourrais pas vous dire s'il y aura une différence entre 4.2 et 4.6, mais historiquement les cadres iOS sur l'appareil (et, dans une moindre mesure, le simulateur) s'adaptent légèrement en fonction de quelle version de le SDK une application a été compilée. Vous ne pouvez pas l'exclure.

Un exemple classique (quoique maintenant ancien) est le fond d'écran. Les applications créées à l'aide d'anciens SDK ont été arrêtées lorsque le bouton Accueil a été activé, plutôt que d'obtenir le comportement le plus récent. Des exemples plus récents (mais subtils) ont inclus plusieurs changements aux vues de table et des changements à la rotation de périphérique.

Vous devez et non essayer de construire avec un SDK plus ancien en utilisant un compilateur plus récent. Apple ne supporte pas ce type de configuration. Vous devriez toujours utiliser le dernier SDK. Et vous ne voudriez pas prétendre que ces problèmes n'existent pas, de toute façon: Les bugs sont réels, ils étaient juste cachés avant. Il est peu probable que vous ne puissiez pas corriger ces bogues de telle sorte que les anciennes versions d'iOS continuent de fonctionner (bien que vous puissiez découvrir qu'il ouvre une boîte de Pandore dont vous estimez qu'elle ne vaut pas la peine d'être corrigée). anciens systèmes d'exploitation).

Questions connexes