AppStore - iOS5
Kixxx
Membre
Bonjour tout le monde,
Je vous explique de suite la situation.
Nous avons développés, il y'a quelques mois, une application iPhone.
à‰tant données que l'iOS 5 n'était pas encore sortie, nous avons développés cette application en 4.3.
OK, jusque là il n'y a aucun problème, l'application fonctionne bien et nous l'avons donc distribués sur le store.
Depuis j'ai voulu tester l'application sur un iPhone muni du SDK 5.0.1 et j'ai énormément de bugs (notamment dans la gestion de "SegmentedControl", ou dans la gestion de "NavigationController").
Le problème ("faux-problème") :
- J'ai énormément de bugs quand j'installe une version ad'hoc, ou quand j'utilise simplement le debugger (via xCode), mais pas quand j'utilise l'application distribué par l'appStore (Cela revient au même que l'utiliser sur un iPhone muni d'un SDK 4.3)
Avez-vous déjà rencontrés ce type de "faux-problème" ?
Pouvez-vous m'aider à comprendre ce comportement ?
Est-ce qu'Apple optimise l'application avant de la mettre sur le store ?
Par avance, merci.
Kévin.
Je vous explique de suite la situation.
Nous avons développés, il y'a quelques mois, une application iPhone.
à‰tant données que l'iOS 5 n'était pas encore sortie, nous avons développés cette application en 4.3.
OK, jusque là il n'y a aucun problème, l'application fonctionne bien et nous l'avons donc distribués sur le store.
Depuis j'ai voulu tester l'application sur un iPhone muni du SDK 5.0.1 et j'ai énormément de bugs (notamment dans la gestion de "SegmentedControl", ou dans la gestion de "NavigationController").
Le problème ("faux-problème") :
- J'ai énormément de bugs quand j'installe une version ad'hoc, ou quand j'utilise simplement le debugger (via xCode), mais pas quand j'utilise l'application distribué par l'appStore (Cela revient au même que l'utiliser sur un iPhone muni d'un SDK 4.3)
Avez-vous déjà rencontrés ce type de "faux-problème" ?
Pouvez-vous m'aider à comprendre ce comportement ?
Est-ce qu'Apple optimise l'application avant de la mettre sur le store ?
Par avance, merci.
Kévin.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si tu veux que des gens du forum testent ton application sur leurs iDevice avec différentes versions d'iOS, donne-nous son nom et quelques codes de téléchargement.
Si tu compiles avec le SDK iOS 5, tu auras probablement des bugs qui n'apparaissent pas quand tu compiles avec le SDK avec lequel tu avais commencé (et terminé) les développements, à savoir 4.x
Et c'est tout à fait normal donc que tu n'ai aucun bug sous iOS 5 avec l'application du store, puisque cette application est compilée avec le SDK iOS 4.x.. alors que tes versions debug/adhoc utilisent probablement le 5.x
Ce qu'il faut comprendre, c'est que lorsqu'une application compilée pour iOS "X" est exécutée sur iOS "Y" (avec X<Y), alors le système "Y" se débrouille pour conserver le comportement de la version "X" du système. Quand cette même application est recompilée avec le SDK de "Y", alors le système ne conserve pas forcément le comportement de "X", puisque de "X" à "Y" les API ont pu changer.
En "imageant" un peu plus, c'est comme si iOS 5 contenait une version de iOS 4 (mais c'est une image, pas la réalité) qui fait tourner les applications compilées avec le SDK iOS 4 (en fait les différents frameworks d'iOS sont capables d'adapter leur fonctionnement en fonction de la version du SDK utilisé).
Donc si l'API d'une classe a changé entre iOS 4 et iOS 5, alors le comportement de l'application lorsqu'elle est utilisée sur iOS 5 dépendra du SDK utilisé pour la compiler: comportement identique à iOS 4 si compilation avec SDK iOS 4, nouveau comportement si compilation avec SDK iOS 5.
j'ai eu un problème similaire : mon application mise en ligne à l'époque du iOS 4, ne fonctionne plus sous iOS 5. J'ai eu la très mauvaise surprise de voir débarquer certains de mes clients me montrer que mon applications ne fonctionnaient plus. Autant dire que ça m'a mis à mal à l'aise vis à vis de mes clients
En tout cas, ça veut dire qu'à chaque apparition d'un nouvel iOS, il faudra re-tester et peut être reprogrammer ses applications.
C'est pas top
Les API sont rétro-compatibles. En général il n'y a rien à changer quand un nouvel OS sort.
Sauf bien sûr si vous utilisiez des API déprecated (donc indiquées comme étant prévues d'être abandonnées sous peu) qui finissent bien sûr par ne plus être supportées, ou que vous utilisiez des API privées, ou ne suiviez pas les guidelines et les Programming Guides et utilisiez les classes d'une façon peu orthodoxe...
Donc la meilleure chose à faire pour moi est de corriger ces beugs ? Mais est-il possible de recompiler mon application avec le SDK 4.3 ? Et comment ? (En téléchargeant un autre XCode avec le SDK 4.3 ?)
Par avance merci.
Faudrait mieux lire le SDK Compatibility & Cross Development Guide
Pourquoi recompiler l'appli avec un SDK plus ancien ?
Parce qu'en effet, c'est assez compliqué à expliquer.
Ce n'est pas moi qui est développé le projet, et je n'arrive pas à corriger les bugs.
D'autant plus que ces bugs me paraissent vraiment bizarre et que celui qui a développé ce projet avec récupéré du code OpenSource :S
Par ex.
- Au click sur un bouton "Segmented Control Customisé", le titre de deux segments s'efface.
Bref, je suis un peu pressé par le temps, et j'aimerai bien re-compiler mon projet en 4.3, faire les modifs nécessaires et le renvoyer sur le store. Comme ça, plus tard, j'aurais eu plus de temps pour résoudre ces bugs ...
Je suis dans une situation très compliquée, je ne vous le cache pas.
Qu'est-ce que vous me conseillerez de faire sérieusement ?
Cela te créera un warning de plus et de toute façon vu ton projet on a tendance a croire peut être a tord qu'il ne sera pas compatible avec iOS5 qui commence a être très présent sur le marché de l'iPhone.
Je suis le seul de mon entourage a être resté en 4.3 tout ça pour pouvoir tester mes projets sous diffèrent OS.
A toi de voir mais il me semble que les modifications que tu redoute tant tu devras les faire un jour ou l'autre.
Mais je pense que cela me donnera beaucoup de travail à accomplir...
Bref, c'est bien le "base sdk" que je veux modifier, mais j'ai le choix seulement entre ces deux attributs :
- iOS 5
- Lastest iOS(iOS 5).
Et je ne sais pas vraiment plus quoi faire ...
Mais justement il fonctionne bien sous un device 5.0, pourquoi ? Parce que d'après ce que j'ai compris, il a été compilé en 4.3 !
Comme j'expliquais dans mon premier message, je n'ai aucun problème sur mon device (5.0) je n'ai aucun bug avec l'application située sur le store. Mais quand j'ai récupéré le code, j'ai créer une version adhoc en la compilant en 5.0 pour la tester sur mon "device" et là j'ai énormément de bugs.
Il se peut que la personne qui t'ai passé le projet n'est pas copier tous les fichiers dont tu as besoin dans le dossier qu'il t'a envoyer mais qu'il les ait passé en référence.
Tu as quoi comme genre de message d'erreur parce que par exemple si ton segmented controller est custom avec des images il se peut que les images soit manquante.
J'ai eu pas mal de projet qui presente ce genre de problème essais de voir si ça peut pas venir de la.
En tout cas, merci pour cette suggestion...
Je ne sais vraiment plus quoi faire ...
J'ai eu un problème similaire avec la navigation bar sur une de mes applications.
Comme l'expliquait Zoc, il est normal que ton application compilée en 4.3 s'exécute correctement sur ton iPhone OS 5.x.
Mais tu es obligé de compiler avec le dernier SDK lorsque tu souhaites publier sur l'AppStore. Le problème que tu rencontres n'est pas étonnant vu que des modifications ont été apportés à la navigation bar sur iOS 5. Si tu n'utilises pas la UINavigationBar en respectant les Guidelines d'Apple tu es contraint de reprendre le code que tu avait fait à époque pour le rendre compatible iOS 5.
La seule solution pour toi est donc de reprendre ton code.
Ok, merci pour ces explications.
C'est donc partie pour un long déboggage ^^.
Merci tout le monde.