Conseils pour une soumission réussie sur AppStore

Dans un jour ou deux, je serai prêt à soumettre mon application iPhone à l'AppStore et je suis curieux de savoir si les personnes qui ont suivi ce process ont des conseils / suggestions pour un process de soumission en douceur.

Voici les choses que j'ai couvertes;

  • Aucune fuite de memory
  • Performances testées sur un périphérique réel
  • Ne plante pas 🙂
  • Utilisation de certificates / profils corrects

Ce dont je suis un peu incertain, c'est comment configurer le "Nom d'affichage de l'set" / "Identifiant de l'set" et "Nom de l'set" dans info.plist. Je comprends le premier est le text qui est montré sur l'iPhone lui-même, mais qu'en est-il le dernier? Est-ce que cela doit correspondre à l'identifiant du bundle?

Y a-t-il d'autres choses que je devrais append à info.plist? J'ai remarqué que lorsqu'elle est conçue pour la dissortingbution Adhoc, mon application ne contient aucune information sur les auteurs et les titres dans iTunes.

Tout d'abord, ne vous inquiétez pas de l'information manquante sur l'auteur / le titre (et l'icône) dans iTunes. C'est une méta-donnée qui arrive quand vous dissortingbuez en utilisant l'App Store.

Votre identifiant de bundle, comme le dit sascha, devrait être unique et est généralement votre domaine en arrière. Cela doit correspondre à l'identifiant d'application que vous avez créé dans le portail de développeur.

Le nom d'affichage (CFBundleDisplayName) est comment il apparaît sur l'écran d'accueil. Une chose importante que j'ai trouvé à ce sujet est qu'il peut être localisé, donc si votre application s'appelait "Beer" en anglais, elle pourrait s'afficher en tant que "Birra" en italien et "Bier" en allemand.

Le truc mécanique, aussi longtime que vous suivez les instructions, est en fait assez simple. J'ai trouvé la key en cours de préparation. Vous n'avez essentiellement aucun avis avant la mise en ligne de votre application, et le process de révision peut durer de quelques heures à quelques semaines. Assurez-vous d'avoir un site Web opérationnel et la capacité d'accepter (et de fournir) des commentaires. Je viens d'utiliser Blogger.

À less que votre application ne soit sortingviale, le monde réel finda des problèmes que vous n'avez pas anticipés et vos users malheureux seront toujours les plus vocaux, donc vous avez besoin de la possibilité de répondre!

Mon application est délicieuse , au fait.

Assurez-vous que vous avez un costume ignifuge pour faire face à tous les critiques retardés qui donnent de mauvaises notes sans essayer l'application ou lire la description de ce qu'il est censé faire.

J'ai été marqué pour ne pas faire des choses que ma description dit qu'il ne fait pas.

Le process d'examen, et l'incapacité de répondre réellement, est exaspérant.

Lors de la soumission d'une application, assurez-vous de bien définir le numéro de version dans le file info.plist – Lors de la mise à jour d'une application, vous devez augmenter le numéro de version. Vous pouvez utiliser la notation xx ou la notation xxx. (J'ai oublié de le mettre à jour lors de ma première mise à jour de l'application). Ce n'est pas difficile à mettre à jour et à recomstackr, mais c'est une de ces choses à oublier facilement.

Je suis d'accord avec Hunter aussi. Vous obtiendrez de mauvaises critiques. C'est bon. Ils sont des crétins. Votre application est géniale.

Si jamais vous avez des problèmes avec les certificates, il y a quelques choses que j'ai trouvé utiles:

  1. Redémarrez XCode.
  2. Dans votre iPhone / iPod, allez dans Paramètres> Général> Profils Assurez-vous que le profil de dissortingbution que vous utilisez est présent et qu'il n'y a pas d'autres profils en conflit (j'avais deux profils de dissortingbution pour la même application). Vous pouvez les supprimer directement dans l'iPhone / iPod.

À un certain moment, vous verrez l'erreur "Application failed codesign verification". ça va te rendre fou. Prenez une profonde respiration. Redémarrez XCode, redémarrez votre matériel de développement. Allez bash un mur, allez boire un verre, et tout recommence.

Ensuite, vous aurez envie de:

  1. Nettoyez la cible de construction (ou toutes les cibles si vous êtes en colère contre elles)
  2. Définissez l'identité de signature de code (dans les propriétés de la cible) sur "Ne pas code de signe"
  3. Fermer Xcode
  4. Supprimer tous les directorys dans le dossier de construction
  5. Ouvrir Xcode
  6. Réinitialiser l'identité de signature de code à votre iPhone Dissortingbution: certificate
  7. Sacrifiez un petit animal.
  8. Construire.
  9. Envoyer une request à iTunes Connect
  10. Profit!

Notez que Xcode 4 est beaucoup mieux quand il s'agit de provisionnement.

Une fois votre application approuvée, vous devez modifier la date de disponibilité à la date d'aujourd'hui. Cela garantit qu'il apparaîtra en haut de la list des catégories, qui est sortingée par date. Nous faisons cela pour notre application, Makeover iStylist .

MISE À JOUR: Comme mentionné ci-dessous, ce n'est plus valable.

Cet article est de loin la réponse la plus complète à cette excellente question:

rejets d'applications

Le message contient également des liens vers d'autres ressources sur le sujet.

Bonne chance, Matthew

L'information dans l'article inclut:

Bogues
HIG Lite Versions Internet
Connectivité (excellente information que vous pourriez être surpris de lire)
Utilisation excessive de la bande passante
Capacités de dispositif de réseaux cellulaires (Un autre bon point ici qui m'a sauvé)

  • API privée
  • Fonctionnalité limitée
  • Aucun code interprété
  • Gestion des données user
  • Contenu protégé par droit d'auteur
  • Utilisation d'images de marque
  • Contenu répréhensible
  • UIWebViews
  • Transactions en dehors de l'App Store
  • Informations sur les prix App Icon et App
  • Enregistrer l'image Description de l'application
  • Mises à jour des mots keys App Store
  • Revu en tant que nouvelles applications

Si vous êtes rejeté, votre date de soumission restra la même que lors de votre première soumission, ce qui se traduira par un classment inférieur lorsque votre application deviendra disponible. Si vous êtes rejeté, requestz à Apple de supprimer la première soumission et, au lieu de replace le binary sur l'application rejetée, soumettez-la en tant que nouvelle application avec un numéro de version plus récent, etc.

Certaines personnes suggèrent de garder votre application gratuitement pendant une semaine ou plus pendant une phase promotionnelle, puis d'augmenter le prix plus tard. J'ai essayé les deux façons et jusqu'à présent, il semble que ce soit d'un côté et d'une demi-douzaine de l'autre. Pour chaque 1000 téléchargements gratuits, vous en attendez environ 10 à 0,99 $ (encore une fois c'est mon expérience)

Une chose mineure que j'ai rencontrée. Assurez-vous que l'icône Small Embedded 57×57 correspond à l'icône Large 512×512. Si c'est "trop" différent à leur avis, ils rejettent l'application. Donc, évitez d'essayer de montrer même un peu plus de détails dans l'icône plus grande.

Suivez les directives de l'interface user si vous utilisez des widgets Apple. Par exemple, réutiliser les jeux d'icons d'Apple dans des contexts qui changent leur signification (comme réutiliser l'icône de la camera pour prendre des captures d'écran, quand l'icône est réservée pour afficher l'album Photos de l'appareil) peut être un motif de rejet.

Depuis le 9 septembre 2010, Apple a publié sa list officielle des règles de révision des applications, il est donc utile de vérifier que vous n'en avez pas enfreint:

directives d'approbation

(connection au développeur Apple requirejse)

ou un miroir ici:

Consignes du magasin d'applications

Ils ont également leur propre page Conseils de soumission App Store (connection au développeur probablement nécessaire).

Je trouve qu'ils ne vérifient pas vraiment les memory leaks et les problèmes de stabilité, plus de problèmes de convivialité. Par exemple, mon application utilise Core Location pour find des arrêts de bus à Perth. Quand ils l'ont testé en Californie, ils n'en ont trouvé aucun à proximité (quelle surprise!). Ils m'ont envoyé un ping pour ne pas afficher un message hors de la zone.

Une autre chose qu'ils ont cinglé était sur les numéros d'arrêt de bus. À Perth, ce sont des numéros à 5 numbers. Les testeurs Apple entraient des numéros à deux numbers et, par inadvertance, des stations de train, pour lesquelles j'utilise un path de code légèrement différent, et la fonctionnalité décrite dans ma description n'aurait pas fonctionné.

C'était en fait très utile, et c'était bien d'avoir quelqu'un que je ne connaissais pas. J'ai été assez surpris de voir à quel point ils étaient expérimentés. Je pensais que ce serait juste une sorte d'outil de vérification statique automatique pour s'assurer que vous n'essayiez pas d'enfreindre la security de l'iPhone.

Le nom d'affichage et le nom doivent être similaires ou identiques, sauf si vous savez qu'ils ne doivent pas l'être (par exemple, twitteriffic et twitteriffic premium s'affichent tous les deux comme 'twitteriffic' sur l'iphone mais ce sont des applications différentes avec des noms différents).

L'identificateur d'set est l'équivalent Apple d'un path de registre à certains égards, les développeurs Windows utiliseraient HKLM \ Software \ Company \ Application – Apple utilise une convention plus semblable à com.companyname.appname.

(Avertissement: aucune connaissance du développement de l'AppStore, juste une petite quantité de connaissances sur les files Mac et Plist)

Mon conseil est de créer un profil de dissortingbution générique. De cette façon, vous pouvez laisser l'identificateur de regroupement seul, la valeur par défaut fonctionne.

Laissez le paramètre "Nom de l'set" sa valeur par défaut. Vous pouvez modifier le nom affiché en renommant le produit (accédez à l'écran d'informations sur le projet, select toutes les configurations et searchz «produit»). Vous pouvez replace ceci par le paramètre Nom d'affichage du regroupement, mais inutile si le nom du produit est correct.

Vous devriez avoir une version haute résolution (512×512) de votre logo ou de votre image promotionnelle lorsque vous soumettez votre application.

Si votre application est rejetée, Apple vous indique ce qu'il faut corriger. Ils sont plutôt raisonnables, alors ne vous inquiétez pas pour ça.

Soumettre des informations de l'appareil à Internet est également un piège potentiel. L'accord SDK dit:

Toute forme de collecte de données d'user ou d'appareil ou capture ou logging d'image, d'image ou de voix effectuée par l'Application (collectivement «Enregistrements») et toute forme de données user, contenu ou informations téléchargées, synchronisées ou transmises par l'Application ( collectivement «Transmissions») doit se conformer à toutes les lois et réglementations applicables en matière de confidentialité ainsi qu'aux exigences du programme Apple relatives à ces aspects, y compris, mais sans s'y limiter, tout avis ou exigence de consentement. En particulier, un indicateur visuel raisonnablement visible doit être affiché à l'user dans le cadre de l'Application pour indiquer qu'un Enregistrement a lieu.

Si vous faites quelque chose comme soumettre les meilleurs scores d'un jeu, assurez-vous de donner à l'user une chance d'ignorer la transmission. Sinon, vous pourriez être rejeté, nous est arrivé.

D'ailleurs: Il n'y a aucune garantie que si votre première version passe, toutes les mises à jour le seront. Notre 1.1 a été rejeté pour une fonctionnalité qui était déjà en 1.0. C'est très ennuyeux, car la mise à jour corrige un bug et s'il faut une semaine pour être rejeté, vous avez déjà une semaine de retard quand vous devez commencer à réparer quelque chose que vous pensiez ne pas être cassé.

Attention aux mots-keys, n'utilisez pas d'autres noms d'applications comme mots-keys. (mon application de musique a été rejetée après 3 semaines parce que j'ai utilisé 'last.fm' comme mot key.)

MISE À JOUR: comme indiqué ci-dessous, quelqu'un d'autre (un squatter de domaine?) A attrapé le domaine, donc le lien est maintenant cassé. Il semble avoir changé de mains plusieurs fois récemment :(.

Lisez la page actuelle des rejets et des acceptations sur AppRejections.com , et vérifiez que vous n'êtes pas sur le sharepoint tomber sous le coup d'un changement récent dans les raisons «secrètes» d'Apple.

Lorsque vous soumettez, il y a une boîte pour que vous puissiez entrer les détails du count démo dont votre application pourrait avoir besoin.

Cette boîte est également un bon endroit pour mettre tous les détails supplémentaires que les évaluateurs peuvent find utiles lors de la vérification de votre request.

S'il s'agit d'une application pour iPad, ne mentionnez pas l'iPad dans le nom de l'application lorsque vous l'envoyez ou le nom d'affichage dans votre Info.plist.

C'était un peu un bugbear pour moi parce que j'ai "une" application (deux binarys) qui a une interface différente pour iPhone et iPad – je ne pouvais pas appeler la version iPad "Symmetry Lab" parce que c'est ce qu'on appelle l'application iPhone , ne pouvait pas appeler "Symmetry Lab iPad" parce que vous ne pouvez pas dire iPad dans le nom, et ne voulait pas l'appeler "Symmetry Lab HD", car il a plus de différences que la résolution. J'ai fini par me contenter de "Symmetry Lab Pro".

N'utilisez pas d'images dans les éléments de la barre d'tabs qui ressemblent à un iphone / ipod touch. Ils utilisent pour les autoriser, mais maintenant ils les rejettent. Il semble que l'autre matériel de pomme ne soit pas un problème.

Apple n'a-t-il pas modifié la méthode de la date de sorting pour les applications nouvellement soumises?

Nous n'avons plus besoin de jouer au jeu "Définissez votre date dans le futur, puis à aujourd'hui".

Les "nouvelles applications" sont sortingées par "date d'approbation" maintenant.

Vous avez "binary invalide" sur plusieurs essais. Ce qui a finalement fonctionné était de compresser le bundle directement sur le Mac et de le download sur un Mac. Bien sûr, laissez le file .dSYM. Lors des essais précédents, le zipping était fait sur un PC. Rezipping pour laisser de côté le .dSYM a également été fait sur un PC sur les tentatives échouées.

Si vous utilisez un browser autre que Safari pour interagir avec le portail de développeur, les choses peuvent ne pas fonctionner. Cela m'a coûté au less une heure de misère pour le savoir.

Si vous créez une version légère de votre application, veillez à ne pas verrouiller les fonctionnalités qui pourraient la rendre non fonctionnelle. Vous n'êtes également pas censé vendre à la version complète (bien qu'il semble que de nombreuses applications le font de toute façon).