34 votes

Liste de contrôle préliminaire avant la construction de la version finale pour App Store

Curieux de savoir quelles pratiques les gens ont apprises avant de procéder à leur compilation finale et de les soumettre à l'App Store? En plus de passer de Debug à Release et de commenter des appels à NSLog, quels autres éléments fondamentaux et / ou non fondamentaux devons-nous être vigilants?

31voto

progrmr Points 32412

C'est une bonne question et je voudrais reformuler certaines de ses réponses, et ajouter un peu de mes propres. J'ai fait cette réponse Wiki de la Communauté, n'hésitez pas à y ajouter.

  1. Supprimer l'application de votre appareil, désactiver le WiFi, désactiver les données cellulaires, maintenant installer et application de test. Cela fonctionne correctement (autant qu'il peut, sans Internet)? Est-il au moins indiquer à l'utilisateur qu'une connexion réseau est nécessaire (si elle est), ou ça plante?

  2. Si vous utilisez CLLocationManager: Supprimer l'application, frais d'installer et d'exécuter, mais ne permettent pas l'application des Données de Localisation. Les applications se comportent bien ou ça plante? Est-il au moins indiquer à l'utilisateur qu'il ne peut pas fonctionner sans les données de localisation (si c'est une obligation)? Cela fonctionne sur un iPod Touch qui fait tout de géolocalisation à l'aide de wi-fi uniquement?

  3. Exécutez l'application dans le simulateur et pour chaque vue, contrôleur de suivre les étapes suivantes: (a) à Partir de l'iPhone Simulateur de menu, sélectionnez "Matériel" --> "Simuler Avertissement de Mémoire", (b) maintenant naviguer autour de votre application à d'autres contrôleurs de vue et voir si tout fonctionne, (c) répétez le test pour un autre point de vue contrôleur.

  4. Si vous soutenez un firmware (c'est à dire: iOS 3.1.3), installer votre application sur un périphérique exécutant 3.1.3 et tester là-bas (si vous n'en avez pas, utilisez le 3.2 simulateur).

  5. Démarrez votre application pendant un appel ou lorsque le partage de connexion est active. Sont toutes les mises en page correcte (la barre d'état est 40px haut au lieu de 20)? Avez-bas 20px de la vue à obtenir poussé hors de l'écran, ou fait-on redimensionner correctement?

  6. Accepter un appel téléphonique alors que dans votre application, est-il démissionner active et de reprendre correctement? Faire des sons à partir de votre application arrêter de jouer alors que dans l'appel téléphonique?

  7. Démarrez votre application tout en jouant de la musique, la musique continue à jouer? Vos sons se mélangent correctement ou fondu de la musique de manière appropriée?

  8. Le Test de performance sur un rythme plus lent appareils avec peu de RAM, tels que: iPhone 3G (128 mo de RAM, 412Mhz CPU) ou iPod Touch (1ère ou 2ème génération).

  9. Exécuter le Cliquetis analyseur statique et fixe (ou au moins de comprendre) de chaque avertissement.

  10. Assurez-vous que NSZombiesEnabled est PAS dans les variables d'environnement (attention: vous ne savez pas si c'est encore un problème)

17voto

Chris Garrett Points 2468

Quelques petites choses:

En fait je ne recommande pas la création d'une configuration de génération appelée "Distribution" comme Apple précise, parce que je suis souvent la création ad hoc d'construit pour les bêta testeurs. J'ai créer deux configurations de génération, l'un appelé Ad-Hoc et un autre appelé AppStore, donc je ne suis pas confus. La seule différence entre les deux est la présence de ces Droits.fichier plist Ad Hoc construire. De cette façon, je peux tester aussi près que possible de ce que je vais soumettre à Apple.

La plupart des développeurs sont optimistes. C'est pourquoi nous travaillons week-end pour créer une application que nous venons de savoir va nous faire un millionnaire. Avant de soumettre même si, être un pessimiste. Imaginez tout ce qui peut éventuellement aller incorrecte, et vérifiez qu'il.

Ne présumez de rien. Ne présumez pas que le petit changement que vous avez fait de l'application n'a rien d'autre. La Loi de Murphy dit que ce petit changement sera la cause de votre app crash sur tous les iPod touch ou quelque chose. Tester, tester, tester à fond entre le code final de modifier et de Appstore soumission. Si vous devez faire un changement minuscule, puis de les répéter jusqu'à ce qu'il est parfait.

Rappelez-vous que si l'application ne plante pas à 99,9% de vos utilisateurs, 1 sur chaque tranche de 1 000 téléchargements de résultat dans un 1 étoile cinglant à l'examen.

Je utiliser Clang analyseur statique, les Fuites et les Allocations d'Objets au cours du développement, mais je fais un passage supplémentaire de ces outils avant de soumettre la demande au cas où.

Si vous ne disposez pas d'un appareil plus ancien, en obtenir un, parce que le 3GS performance est nettement mieux et vous risquez de manquer des importants problèmes de performances.

Test de votre application avec les configurations suivantes lorsque le réseau ou l'emplacement sont applicables:

  • iPod Touch
  • iPhone 3G
  • iPhone 3GS
  • iPhone en mode Avion
  • iPhone avec une connexion Wi-Fi gratuite
  • iPhone EDGE
  • Appelez le téléphone pendant l'utilisation de votre application

8voto

mahboudz Points 23653

Au lieu de passer à la Libération, je passe à la "Distribution". C'est une copie de la publication, mais c'est la manière dont j'ai appris par certains Apple doc et iPhoneDeveloperTips.

Points importants:

Après le final de la construction, mais avant de vous précipiter à zip de votre application, ouvrez le paquet à l'aide du Finder Afficher le Contenu du Paquet. En raison de certains bug dans le MacOS, ce qui m'a mordu dans les versions antérieures à Snow Leopard (et il peut être encore là), si vous zip up trop vite (à l'aide du Finder Compresser ou de l'Archivage de l'élément de menu), une partie des ressources ont encore à être vidées dans le fichier. Quand vous faites Afficher le Contenu du Paquet, le contenu mis à jour. La façon dont vous l'avis de ce problème est que la taille de votre comprimé d'application serait comprise entre un cinquième à un dixième ou moins de la taille attendue. Vous pourriez penser à vous-même, "hey, c'zip utilitaire vraiment fait un excellent travail de compression", mais ce n'est pas le cas. Ce problème est à ce point au lieu de pendant les tests, principalement parce que vous faites un "clean all" construire et à toutes les ressources et le contenu de l'app bundle de départ est le vide puis rempli par Xcode. Et pour une raison quelconque, même après Xcode est fait pour créer le fichier, le contenu n'est pas encore vraiment là, si vous compressez, mais serait-il si vous avez regardé (sorte d'inversion de Heisenberg). Méfiez-vous.

Un autre domaine je passe beaucoup de temps sur est sympa de faire une sauvegarde des sources, après que j'ai commis toutes les dernières modifications apportées à SVN, a fait une nouvelle branche, et marqué le fichier. Je tiens à avoir mon numéro de version correspond à mes SVN/construction / commettre nombre donc je sais toujours qui version SVN correspond à ma libération. J'ai ces deux numéros de version dans mon info.plist et peut être tiré vers le haut par l'application de l'utilisateur quand ils ont frappé je pour plus d'info. Par exemple, un courant d'info.pist comprend:

<key>CFBundleShortVersionString</key>
<string>2.0a1</string>
<key>CFBundleVersion</key>
<string>346</string>

Il y a différentes idées sur la façon d'utiliser le CFBundleVersion. C'est ma façon. Il est également utile de l'utilitaire de ligne de commande, agvtool.

Une fois que l'application est construite, après la compression de sorte que vous n'êtes pas en train de faire des changements à la version compressée, aller vérifier l'application fichier et assurez-vous qu'il est signé avec le droit de distribution cert et pas votre adhoc un. Apprendre à utiliser l'utilitaire de ligne de commande, codesign, est utile pour ce genre de vérification et de débogage. En faisant de la copie compressée tout d'abord, vous assurer que vous n'êtes pas en aucune façon va changer la copie finale que Xcode a remis vous et que vous pourrez télécharger à itunesconnect, si tout se passe bien.

D'autres choses à retenir sont l'icône de l'application, les divers autres icônes et des graphiques dont vous avez besoin pour l'iTunes store, l'info.plist, et le fait que lorsque le téléchargement de l'application échoue avec un message d'erreur cryptique, il a généralement à faire avec l'une de ces pièces manquantes dans le fichier compressé que vous êtes la construction (ces pièces, qui appartiennent à l'app bundle).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X