
Pour lancer le cours «
Fullstack Mobile Developer », organisé conjointement avec l'agence
Agima , nous avons préparé une série de documents sur la façon de créer des applications mobiles. Nous parlerons de cas, de nombres, de règles et d'échecs, mais nous commencerons, avec Nikita Arkhipov du studio Anvics, à partir du sujet du passage de la version sur l'App Store. Nous découvrirons comment convenir avec l'équipe de révision et éviter les problèmes, vous expliquer étape par étape le côté technique - de la création d'un certificat à l'interaction avec Itunes Connect - et ce sur quoi tout le monde se tait - comment passez-vous la revue la première fois. Préparez les pattes, et c'est parti!
Réflexions: et dans cette série de matériaux, les remises sur le cours sont cachées: dans chaque article sur le développement mobile, il y a un rébus dans lequel le mot ou le nom de la solution de la zone mobile est crypté. Pour le rébus deviné, vous obtenez un rabais de 10%! Soit dit en passant, les remises sont cumulatives, donc si vous les récupérez toutes, vous pouvez profiter du cours à un prix très savoureux! Cherchez le premier rébus déjà dans ce texte!Le jeu est développé, l'application est créée, tout est prêt à être lancé. Il est temps pour la sortie - et ici, vous risquez de rencontrer des surprises. Lorsque vous devez être libéré de toute urgence et que l'application n'est pas encore prête pour un examen «honnête», il est difficile, mais tout à fait possible, de contourner les restrictions fixées par Apple. Nous vous expliquons comment vous mettre d'accord avec l'équipe qui décide de publier des applications sur l'App Store. Nous comprenons les causes possibles d'échec ou de blocage. Et pour ceux qui déploient d'abord leur produit dans la boutique d'applications, nous analysons les détails techniques de la revue, de la création d'un certificat à l'interaction avec iTunes Connect.
Lire la documentation
Il semble que pour se préparer à l'examen, il suffit de lire les
directives d'examen de l'
App Store à quelques reprises, et tout ira bien. Mais les difficultés peuvent déjà commencer à ce stade. Tout d'abord, il s'agit aujourd'hui d'un Talmud de trente pages. Deuxièmement, presque au tout début de ce document, il y a le paragraphe suivant: «Nous rejetterons la demande, dont le contenu viole les limites».
En même temps, personne ne sait exactement quelle est la frontière derrière les demandes rejetées. Comme le juge suprême américain l'a dit un jour: «Je comprendrai (cette frontière) quand je la verrai.» Cependant, vous ne devriez pas avoir peur à l'avance: malgré une formulation aussi vague, le processus d'examen lui-même est très adéquat, et Apple ne refuse tout simplement pas les demandes de publication.
Assurez-vous de vérifier les mises à jour sur les directives de révision de l'App Store. Configurez des notifications sur les actualités liées dans le moteur de recherche ou suivez les événements de profil au cours desquels des innovations sont annoncées. Par exemple, lors de la récente World Wide Developers Conference 2018, Apple a
introduit un certain nombre de nouvelles règles concernant les politiques de confidentialité, le ciblage publicitaire et les applications liées à la crypto-monnaie. Le projet
Historique des directives de révision de l'App Store peut vous aider sérieusement, dont les créateurs marquent toutes les nouvelles modifications: ce qui est ajouté au Guide est marqué en vert et celui supprimé en rouge. Nous vous recommandons de vous abonner à leur newsletter.
Pourquoi la demande peut être rejetée
Il suffit de se souvenir clairement des principaux motifs d'un éventuel refus énoncés dans les mêmes directives de révision de l'App Store. Ils sont assez simples et ressemblent brièvement à ceci:
- Pas de violence réaliste, de pornographie, de discrimination ou de tromperie. En plus des jeux sanglants évidents et du contenu des nouvelles franches, il y a des cas plus complexes. Par exemple, l'application AfterSchool, dans laquelle des écoliers américains pouvaient communiquer pendant leur temps libre, en raison du manque de contrôle sur son contenu, s'est rapidement remplie de menaces de «plaisanterie» - tirer sur les écoles, c'est pourquoi Apple l'a retiré du magasin à plusieurs reprises. Cependant, après un certain temps, AfterSchool est revenu sur l'App Store.
- L'application doit être complètement terminée et passer le test de bogue du côté des créateurs. L'App Store n'acceptera pas les applications avec des erreurs évidentes qui s'exécutent trop lentement par rapport aux pairs et se bloquent de manière inattendue. L'équipe d'examen teste le logiciel qui leur est soumis pour examen manuellement et très soigneusement. En raison d'une erreur trouvée, la demande sera rejetée et une capture d'écran et une description de ce qui s'est passé vous seront envoyées. Cela peut être considéré comme une opportunité pour des tests supplémentaires, mais il ne faut pas en abuser - si vous envoyez trop souvent des candidatures ouvertement incomplètes à la révision, la priorité de l'équipe de révision pour considérer vos candidatures diminuera considérablement.
- Les développeurs doivent fournir une description correcte de toutes les fonctionnalités, et l'application doit fonctionner conformément à cette description. En particulier, cela signifie qu'il ne devrait pas avoir de fonctions cachées qui ne seront ouvertes à l'utilisateur qu'après l'installation. Par exemple, si vous utilisez la monétisation free-to-play, lorsque certaines des fonctionnalités de l'application ne seront disponibles que sur une base payante, assurez-vous de le dire dans la description. Pour une parfaite conformité avec ce paragraphe, il ne faut pas oublier que l'application doit demander l'autorisation à l'utilisateur d'utiliser ses contacts, ses données de géolocalisation, son microphone et sa caméra, ainsi que pour accéder au stockage interne du téléphone et aux comptes dans les services tiers, notamment lors de l'autorisation.
- Vous ne pouvez pas utiliser d'API privées, appeler les fonctions du système interne iOS, télécharger un nouveau code et encore plus de virus. Si le paragraphe précédent s'adresse à des développeurs consciencieux mais inattentifs, cela s'adresse directement aux attaquants potentiels.
- Les applications hébergées dans l'Apple Store ne devraient pas avoir trop peu de fonctionnalités. L'article 4.2 des directives stipule: "Si l'application n'est pas d'une utilité particulière et n'est pas perçue comme un produit à part entière, elle n'est pas adaptée à l'App Store." L'équipe de révision cherche donc à s'assurer que tout ce qui est proposé à l'utilisateur lui sera utile. Un exemple typique est l'interdiction de publier des wrappers pour le navigateur, ne modifiant que son apparence, mais n'ajoutant aucune nouvelle fonctionnalité.
- L'application ne doit enfreindre aucune loi de tous les pays pour lesquels elle sera disponible. Se référant spécifiquement à ce paragraphe, Roskomnadzor a demandé à Apple de supprimer Telegram du catalogue d'applications.
- L'inclusion de l'application ne doit pas porter atteinte au droit d'auteur. La question se pose: "comment cette règle a-t-elle contourné VKontakte avec leur volume de musique et de vidéos illégales?" En effet, l'application VK a depuis longtemps la capacité de diffuser de tels contenus sans licence. Mais il y a environ 4 ans, Apple a commencé à prendre plus au sérieux la violation du droit d'auteur dans d'autres pays (avant cela, ils regardaient, du moins en Russie, à travers les doigts). Juste à ce moment, VKontakte (et d'autres applications avec de la musique piratée) ont été supprimées de la boutique et renvoyées uniquement après une mise à jour dans laquelle le contenu portant atteinte aux droits d'auteur n'était plus disponible. Maintenant, VK a à nouveau la fonctionnalité de jouer de la musique, mais maintenant c'est tout à fait légal - ce sont des «écoutes de démonstration» limitées, et les versions complètes des listes de lecture sont disponibles dans une application distincte et payante qui transfère des fonds aux musiciens.
Il est important de noter ici que l'équipe d'examen d'Apple lors du refus d'une application décrira toujours la raison et expliquera ce qui doit être changé. Mais encore une fois, cela ne devrait pas être abusé: quelques tentatives infructueuses - et la prochaine fois que votre contenu sera soumis à un examen encore plus minutieux.
Expérience personnelle
Chez Anvics, nous avons nous-mêmes rencontré à différents moments des problèmes non seulement de cette liste lors de la réussite de l'examen.
Une fois que nous avons lancé une petite promotion pour une campagne publicitaire.
une grande marque. Il ne contenait que les fonctions de visualisation de vidéo VR et les commentaires des représentants de la marque. L'équipe d'examen a considéré que la demande n'était pas suffisamment fonctionnelle et l'a rejetée. Mais il s'est avéré que pour réussir l'examen, il suffisait d'ajouter les boutons «Partager sur les réseaux sociaux» et la galerie. Après de telles modifications cosmétiques (dans le contexte général du développement), l'application a réussi le test avec calme.
Il était également utile de savoir que pour les applications de marque, si elles ne sont pas publiées à partir du compte d'entreprise de la marque elle-même, vous avez besoin d'une lettre de confirmation des représentants de la marque, qui vous permet d'utiliser le nom, le logo et d'autres attributs de marque de la marque pour développer et mettre en œuvre l'application. Vous pouvez le préparer sous forme libre: «Moi, tel ou tel directeur général, j'autorise l'utilisation de ma marque« Marque »pour l'application« Application »dans le compte« Compte »». Scannez ce document et joignez-le à la demande de révision.
Il existe également des caractéristiques techniques que vous ne remarquerez peut-être tout simplement pas. Par exemple, nous avons rencontré une fois le fait que tous les services tiers auxquels l'application accède à l'API doivent prendre en charge IPv6. Et, bien sûr, ils ne doivent contenir aucune URL sous la forme 1.1.1.1. Soyez plus attentif à ces détails, cela vous fera gagner du temps.
Revue de côté technique
Comment passer en revue:
- payer votre compte (standard pour 99 $ ou Entreprise pour 299 $ par an);
- assurez-vous que l'application est complètement prête et testée;
- créer un certificat;
- obtenir l'identifiant;
- en les utilisant, créez un profil d'application;
- Archiver l'assembly d'application dans Xcode
- l'envoyer à Itunes Connect, un service à travers lequel toutes les interactions des développeurs avec l'App Store ont lieu.

Au cours «Fullstack Mobile Developer», nous expliquons en détail comment passer d'une idée d'application à une version dans l'App Store, et, bien sûr, nous couvrons plus en détail toutes les étapes de la revue. Mais nous allons partager un guide étape par étape sur la façon d'envoyer la demande pour examen maintenant. (Et n'oubliez pas le rébus avec des remises - c'est déjà proche!)
Nous signons la demande
La mécanique de création d'une signature peut poser des problèmes à ceux qui ne l'ont jamais rencontré auparavant, alors parlons-en en détail. Les applications ont des certificats, des identifiants et des profils.
- Le certificat est connecté à l'ordinateur et l'autorise à signer des applications.
- ID d'application - un identifiant unique pour l'application. De plus, il stocke une liste des technologies utilisées par l'application (par exemple, achat dans l'application, notifications push, etc.).
- Profil - «union» du certificat et de l'identifiant, utilisé pour signer la demande à partir d'un ordinateur spécifique. Il indique également comment l'application sera distribuée: développement (lancement de l'application de l'ordinateur vers votre appareil), App Store (envoi de l'application vers l'Apple Store officiel) ou Ad Hoc (installation à distance de l'application sur les appareils, sans utiliser l'App Store).
Pour signer l'application, vous devez d'abord enregistrer l'ordinateur et obtenir un certificat, puis générer l'identifiant de l'application et, à la fin, créer un profil à envoyer à l'App Store. Passons en revue toutes les étapes étape par étape.
Première étape: créer un certificat
Une fois le compte enregistré et payé, nous accédons au
portail des développeurs Apple .
Sélectionnez les certificats, identifiants et profils:

Nous voyons le menu du certificat:

Cliquez sur l'icône «+» à droite de l'étiquette des certificats iOS:

Sélectionnez l'
App Store et Ad Hoc , cliquez sur Continuer:

Après avoir examiné la description de la façon dont la demande de création de certificat sera créée, cliquez à nouveau sur Continuer:

Maintenant, nous devons créer une clé sur l'ordinateur. Pour ce faire, exécutez le programme "Keychain":

Dans le menu du haut, cliquez sur "Keychain" -> "Certification Assistant" -> "Request a certificate from a certification bureau ...":

Nous indiquons l'email de notre compte, dans le nom usuel nous écrivons n'importe quel nom, l'adresse email BS est laissée vide, dans la requête nous sélectionnons "Enregistré sur le disque":

Cliquez sur "Continuer" et enregistrez le fichier avec l'extension .certSigningRequest dans un endroit pratique (par exemple, sur le bureau). Après l'enregistrement, transférez-le sur le bouton Choisir un fichier du portail Apple:

Cliquez sur Continuer, sur l'écran suivant - Télécharger et double-cliquez sur le fichier téléchargé - après quoi la fenêtre "Porte-clés" devrait devenir active et "Ajouter des certificats" devrait apparaître. Assurez-vous qu'il contient les données «Keychain - input» et cliquez sur «Add»:

Le certificat pour l'ordinateur est prêt.
Deuxième étape: ajouter un ID
Dans le menu du portail Apple, sélectionnez l'élément ID d'application:

Comme pour les certificats, cliquez sur l'icône plus:

Sur la page qui s'ouvre, assurez-vous de remplir le champ Nom (le nom de l'application - en dessous, il n'apparaîtra que sur le portail Apple) et l'ID d'application. Copiez l'ID d'application à partir des paramètres Xcode de votre projet:

Ci-dessous, vous verrez une liste de services que l'application utilisera. Cochez les cases nécessaires dans les cases correspondantes (plus tard, cette liste peut être modifiée).
Après cela, cliquez sur Continuer en bas de la page, sur l'écran suivant - S'inscrire et sur le dernier - Terminé. L'ID d'application est prêt.
Troisième étape: créer un profil
Dans le menu, accédez à Provisioning Profiles -> Distribution:

Nous cliquons sur l'icône familière «+» et dans l'onglet ouvert sélectionnez l'
App Store :

Sur l'écran suivant, sélectionnez l'identifiant d'application que nous avons enregistré:

Maintenant, nous sélectionnons le certificat, puis saisissons le nom du profil (sous ce nom, il sera affiché dans xCode - c'est-à-dire, c'est le nom de travail visible uniquement pour vous et les représentants d'Apple):

Cliquez sur Continuer, sur l'écran suivant - Télécharger et double-cliquez sur le fichier téléchargé. Après ces étapes simples, Xcode devrait devenir une fenêtre active. Tout est prêt: nous avons créé tous les fichiers nécessaires à la signature de notre candidature.
Rejoignez iTunes Connect
Avant de soumettre une application sur l'App Store, vous devez l'enregistrer dans iTunes Connect. Pour ce faire, ouvrez le site
appstoreconnect.apple.com et après autorisation avec le même nom d'utilisateur / mot de passe que sur developer.apple nous arrivons à l'écran principal:

Après avoir sélectionné «Mes applications», cliquez sur l'icône plus et sélectionnez «Nouvelle application»:

Remplissez tous les champs de la fenêtre qui s'ouvre. Dans le champ SKU, entrez l'identifiant de l'application et affectez les caractères ".SKU":

Cliquez sur "Créer" - maintenant l'application est enregistrée.
Archivage des versions d'application
Retour à Xcode avec le projet:

Désactivez la gestion automatique de la signature, cliquez sur Aucun en face de l'équipe et sélectionnez Ajouter un compte dans la liste déroulante. Après cela, une fenêtre s'ouvrira pour vous permettre d'entrer votre identifiant et votre mot de passe:

Après cela, dans les paramètres du projet, sélectionnez la commande ajoutée.
Reste maintenant à installer le profil et le certificat dans Xcode. Pour ce faire, ouvrez l'onglet Paramètres de build (assurez-vous que Tout est sélectionné juste en dessous):

Faites défiler jusqu'à la section Signature et sélectionnez notre certificat et profil ici:

Cible suivante -> Périphérique iOS générique:

Cliquez sur Produit -> Archiver:

Nous attendons l'ouverture de la fenêtre après l'archivage (cela peut prendre jusqu'à une demi-heure):

Cliquez sur Télécharger sur l'App Store ...

Cliquez sur Suivant, après quoi Xcode passera un peu de temps à télécharger et vous donnera la fenêtre suivante:

Ici, nous sélectionnons notre certificat et notre profil, cliquez sur Suivant, puis téléchargez et attendez! Après avoir réussi à charger Xcode, après environ 30 à 60 minutes, l'assemblage apparaîtra dans appstoreconnect.
Lorsque cela s'est produit, l'assemblage, ainsi que la description de la demande, les documents nécessaires (le cas échéant) et les coordonnées peuvent être envoyés pour modération à l'équipe d'examen.
Et voici le rébus! N'oubliez pas que le mot ou le concept qui y est caché fait référence au développement mobile, gardez à l'esprit que l'anglais peut interférer avec le russe ici, et surtout - n'oubliez pas que nous suivrons attentivement les commentaires et supprimerons leurs astuces et réponses! Le prologue, chiffré dans le rébus, doit être appelé lorsque notre responsable vous contacte après l'envoi d'une candidature pour le cours. Les remises pour les puzzles résolus (il y en aura cinq au total, selon le nombre de matériaux) sont résumées entre elles, mais pas avec des remises sur le site. Ne tardez pas trop - la promo fonctionne jusqu'au 30 août 2018.
Rond-point
IOS, en raison des spécificités de la plate-forme fermée, n'a qu'un seul magasin d'applications officiel - l'App Store. Si vous faites un jailbreak, vous pouvez bien sûr utiliser le Cydia non officiel, mais ces dernières années, il a perdu de plus en plus de popularité, ce qui signifie qu'il n'a pas un niveau d'activité très élevé. Cette option peut être pertinente pour ceux qui ne veulent pas faire face aux restrictions imposées par Apple, mais ce n'est pas nécessaire pour le développeur ordinaire.
Si vous avez un besoin urgent d'être libéré, contourner les restrictions fixées par Apple est difficile, mais tout à fait possible. D'après notre expérience, si l'application ne déroge pas beaucoup aux règles, vous pouvez soigneusement demander de la sauter, en promettant de la corriger dans la prochaine version, et de motiver le besoin urgent d'entrer dans le Store, par exemple, par le fait qu'un événement est prévu pour demain, ce qui nécessite l'utilisation de cette application. . En général, l'équipe de révision est assez sympathique: ses représentants sont prêts à rencontrer les développeurs, et si vous avez besoin d'une solution rapide au problème, vous pouvez même les appeler.
Cependant, comme nous l'avons dit ci-dessus, si vous enfreignez systématiquement les règles et envoyez l'un après l'autre de nouveaux assemblages instables, Apple peut vous appliquer des sanctions.
Chaque examen ultérieur d'assemblages qui violent les règles de l'App Store entraînera une augmentation de ses conditions. Théoriquement, vous pouvez obtenir un verrouillage de compte, mais dans la pratique, cette mesure n'est généralement pas appliquée au stade de la pré-version.
Si l'équipe d'examen détecte une fraude de l'utilisateur ou une violation des règles dans une application déjà publiée, elle sera supprimée du répertoire. Des violations graves comme le vol de données peuvent même entraîner la suppression d'un compte.
Examen du calendrier
Dans la plupart des cas, un examen prend 1-2 jours, mais peut durer plus longtemps si vous ne disposez pas de toutes les informations nécessaires (par exemple, les connexions et les mots de passe pour accéder à la partie privée de la fonctionnalité) ou lorsque vous renvoyez l'application pour modération après plusieurs échecs. .
— , Google Play , , , iOS-, iOS Android .
, : Apple , , . : , - .