AppStore - iOS5

KixxxKixxx 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.

Réponses

  • DrakenDraken Membre
    21:51 modifié #2
    Apple ne modifie en rien l'application avant de la mettre sur le Store.

    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.

  • 21:51 modifié #3
    Bha c'est normal...
    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
  • zoczoc Membre
    21:51 modifié #4
    Apple ne touche pas au moindre octet de l'application avant de la publier sur le store.


    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.
  • GarudaGaruda Membre
    21:51 modifié #5
    Hello,

    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  :(
  • AliGatorAliGator Membre, Modérateur
    21:51 modifié #6
    Bah ça dépend comment vous codez aussi...

    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...
  • KixxxKixxx Membre
    21:51 modifié #7
    Ok, j'ai compris merci pour vos explications ^^.

    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.
  • KixxxKixxx Membre
    21:51 modifié #8
    Personne ?
  • AliGatorAliGator Membre, Modérateur
    21:51 modifié #9
    Pourquoi recompiler l'appli avec un SDK plus ancien ?? Le SDK 5.0 contient déjà  les méthodes du 4.3

    Faudrait mieux lire le SDK Compatibility & Cross Development Guide
  • KixxxKixxx Membre
    21:51 modifié #10
    Ok, merci pour le lien.

    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 ?
  • NasatyaNasatya Membre
    21:51 modifié #11
    Tu peux modifier le "base sdk" dans les settings de ton projet je suis pas sur que ça fasse ce que tu veux. Mais je vois rien d'autre.

    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.
  • KixxxKixxx Membre
    21:51 modifié #12
    Non mais j'en suis conscient ! Je les corrigerai tôt ou tard ça c'est sûr ...
    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.


  • NasatyaNasatya Membre
    21:51 modifié #13
    Une question comme ça est ce que tu par hasard il te manquerait quelques fichiers? Parfois lors de transfert sur clé usb ou autre il manque des données.

    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.
  • KixxxKixxx Membre
    21:51 modifié #14
    Non j'ai vérifié, j'ai tous les fichiers, les bonnes images et tout !
    En tout cas, merci pour cette suggestion...

    Je ne sais vraiment plus quoi faire ...
  • GranDavGranDav Membre
    21:51 modifié #15
    Hello,

    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.
  • KixxxKixxx Membre
    21:51 modifié #16
    dans 1324397568:

    Hello,

    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.
Connectez-vous ou Inscrivez-vous pour répondre.