lundi 12 mars 2012

Test Apps 3.x sur téléphone tournant sous OS Beta

#alttext#
Comme de nombreux développeurs iPhone, je n'ai plus d'un appareil que j'utilise pour les tests. J'ai un iPod Touch que je partent habituellement à la version actuelle, un iPad WiFi que je quitte à la version actuelle de l'iPad, et j'ai un iPhone 3G que je garde sur la version saignements pointe version bêta. De cette façon, j'ai un appareil à tester et exécuter des choses sous le SDK bêta et sous le SDK version, et je garde tous deux installés sur ma machine si j'ai la possibilité de vérifier et d'apprendre la prochaine version du SDK, tout en créant des applications en utilisant la version actuelle du SDK.

Normalement, c'est une configuration parfaitement suffisant pour mes besoins, mais aujourd'hui, il n'était pas. J'ai un problème que j'essaie de déboguer ce qui se passe lors de l'exécution sur le EDGE ou sur une connexion 3G vraiment lent, il ne se passe sous WiFi. Je fais un correctif pour un client qui aura besoin d'aller sur l'App Store longtemps avant 4.0 va GM, donc j'ai besoin de travailler sous 3.1.2.

Afin d'essayer de reproduire ce problème, je dois être capable d'exécuter l'application sur mon téléphone parce que le iPod touch et iPad fois seulement les connexions WiFi de sorte, par conséquent, je ne peux pas reproduire le problème. Je ne veux pas de construire contre le SDK beta parce que c'est une correction de bug sur une application existante, et l'installation bêta n'inclut pas la version actuelle du SDK que j'ai besoin de construire sous, donc je ne peut pas construire une 3.1. 2 app en utilisant les outils bêta. Ceci est probablement fait pour décourager les gens de construire des applications pour l'App Store avec les outils bêta (qui vous avez vraiment, vraiment ne pas faire). Le seul problème est, les versions OS ont d'adéquation entre les outils et le téléphone, donc je ne peux pas lancer le Xcode GM et déboguer les applications et sur mon iPhone sur lequel j'ai installé la beta OS et si je fais tourner sur mon iPod touch, Je ne peux pas reproduire le problème j'ai besoin de déboguer, car il ne se produit pas sous WiFi.

Il ya effectivement une solution, ce qui est de créer un lien symbolique de SDK dans le dossier GM outils pour le dossier beta outils. Donc, dans mon cas, j'ai des outils de GM installé dans / Developer et la version bêta actuelle installée dans / DevBeta. Afin de compiler une application 3.1.3 pour que je puisse le tester sur un téléphone qui a été mis à jour 4.0, je peux déposer à la borne et de faire ceci:
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk \
/DevBeta/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.3.sdk
Si j'ai besoin de courir et de tester une application avec un SDK de base de 3,0 sur un téléphone qui a été mis à jour à 4,0, au lieu je fais ceci:
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk \
/DevBeta/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk
Pour ce faire, avec Xcode fermé, puis lorsque vous rouvrez votre projet avec un SDK âgées de base, cela devrait fonctionner. Tout ce que nous faisons est de créer un lien symbolique entre le répertoire beta outils pour le SDK approprié dans le répertoire de l'outil de GM.

Maintenant, être conscient, cette action est susceptible d'être mal vu par le Mothership, ils exclus les SDK pour une raison. Mais, je n'ai pas divulgué quoi que ce soit au sujet de la version bêta autre que son existence, qui est largement connu, et il are raisons valables d'utiliser les outils du SDK bêta et GM, j'ai donc bien qu'il vaut partage. Caveat emptor - faites à vos propres risques et ne te fâche pas contre moi si cela cause des problèmes.

Aucun commentaire: