Publication sur l'Apple Store

Pré-requis

Tout comme Android, Apple requiert de signer votre application mobile et il nous faudra donc générer un provisioning profile. La bonne nouvelle est que depuis iOS 9, il est tout à fait possible de développer, puis tester son application sans disposer d'un compte développeur payant.

Cependant, pour la publication sur l'iTunes Store, vous aurez besoin d'être affilié au programme de développeurs Apple coutant 99€ par an.

La procédure est un peu moins évidente et je vous conseille de consulter la documentation Officielle d'Apple : https://help.apple.com/xcode/mac/current/#/dev60b6fbbc7.

Il faut globalement un certain nombre d'étapes permettant la signature de votre application et son authentification en tant que produit apple.

Création d'un "Provisioning profile"

En utilisant Xcode et votre Apple ID (Recommandée)

Avec cette méthode, XCode se chargera de signer automatiquement votre application, tout en l'associant à votre appareil mobile lors de la phase de Test.

Commençons donc par ouvrir notre application avec Xcode en saisissant la commande suivante :

$ open platform/ios/monProjet.xcodeproj

Suivez ensuite les étapes suivantes :

  1. Ouvrez les préférences Xcode (Xcode > Preferences…)
  2. Cliquez sur l'onglet Accounts
  3. Connectez-vous si nécessaire avec vos identifiants Apple en faisant + > Add Apple ID

Une fois connecté, vous verrez s'afficher dans le tableau du bas _Votre Nom (Personal Team) _avec le rôle User.

Depuis Xcode, sélectionnez votre application pour commencer la signature automatique (voir image ci-dessous)

En utilisant votre compte développeur (nécessaire pour la publication)

La procédure est un peu plus complexe. N'hésitez pas à prendre connaissance des étapes sur le site d'Apple : https://help.apple.com/xcode/mac/current/#/dev60b6fbbc7

On va tout d'abord générer un certificat en local, en ligne de commande :

$ openssl genrsa -out ios-prod.key 2048
$ openssl req -new -key ios-prod.key -out ios-prod.csr

Puis, depuis votre compte de développeur Apple, allez à la section "Certificates" (https://developer.apple.com/account/ios/certificate/) et dans Production, créez un nouveau certificat apple en cliquant sur le bouton "+". Quand cela vous sera demandé, utiliser le fichier ios-prod.csr généré précédemment.

Une fois le certificat créé, vous pourrez télécharger un fichier au format .cer : ios_distribution.cer.

Vous devrez après cela créer un Identifiant d'application, car nous en aurons besoin durant la création du Provisioning Profiles.

Dans Identifiers > App IDs, cliquez sur le bouton "+" et compléter le formulaire qui vous est proposé en donnant un nom à votre application, et en précisant le l'App ID (il est recommandé d'utiliser le même que celui que l'on retrouve dans le fichier config.xml, à la section widget

<widget id="fr.duckcoin.monappli.ionic" version="1.0.5" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

Après la création d'un identifiant d'application, Il faut aller dans la section Provisioning Profiles > Distribution et cliquer sur le bouton "+" également.

Choisissez "App store" dans la partie Distribution, puis cliquez sur "Continuer".

Choisissez ensuite l'App ID créé précédemment, ainsi que le certificat.

Donnez un nom à votre Profil, puis appuez sur Continuer.

Télécharger le fichier .mobileprovision et stocker le en lieu sûr.

Il faut pour finir, le convertir le certificat .cer en fichier .p12.

$ openssl x509 -inform DER -outform PEM -in ios_distribution.cer -out ios_distribution.cer.pem
$ openssl pkcs12 -export -inkey ios-prod.key -in ios_distribution.cer.pem -out certificates-prod.p12

Si vous souhaitez passer par le cloud Ionic (https://dashboard.ionicframework.com) pour compiler votre projet, vous aurez besoin des fichiers certificates-prod.p12 et .mobileprovision. Cette étape est malheureusement payante dans la nouvelle version de Ionic PRO.

Depuis le menu Settings > Certificates, ajoutez un nouveau profil :

Puis éditez le formulaire qui s'affichera en ajoutant le fichier .p12 dans la partie App Development/Store Certificate, le fichier .mobileprovision dans la partie Provisioning Profile. Saisissez un mot de passe, si vous l'avez fait en créant votre certificat en local.

P.S. : il est également possible d'importer votre fichier keystore Android dans la section correspondante.

Création d'un package IPA (iOS App Store Package)

Compilation en ligne de commande

$ ionic cordova build ios --prod

Depuis Xcode

Ouvrez votre projet depuis Xcode en cliquant sur le fichier platform/ios/monProjet.xcodeproj. Sélectionnez votre projet dans Xcode et dans l'onglet général, catégorie Signing, remplacez la Team par celle que vous avez créée précédemment.

Une fois la sélection faite, vous ne devriez plus avoir le message d'erreur en rouge.

Vous êtes prêt à compiler votre Projet.

Toujours dans Xcode, non loin du bouton de compilation (icon play) , changez le device cible en Generic iOS Device. Une fois que cela a été fait, faites Product > Archive. Cette étape va simplement créer votre application en package interpretable par les appareils Apple. Suivez les étapes dans la popup qui s'ouvre en sélectionnant l'option Automatically manage signing (Si vous ne disposez pas encore d''un Certificat, l'outil vous aidera à le faire).

Une fois l'Upload effectué, vous devriez voir s'afficher cette popup avec un message le message "Upload Successful".

Depuis Ionic Appflow (payant)

Dans votre tableau de bord Ionic Appflow, allez dans Deploy > Builds, puis cliquez sur le bouton en forme de package à droite (celui du milieu sur l'image ci-dessous) pour compiler votre projet.

Une fois la compilation terminée, téléchargez le fichier IPA.

Si vous disposez d'un ordinateur Mac, un ionic cordova run ios --device devrait vous permettre de tester votre application depuis votre smartphone et vous assurer qu'il n y a aucune erreur lié à la spécificité de l'OS, avant d'exporter votre application au format IPA.

Pour plus d'informations sur les étapes annexes, n'hésitez pas à visiter les pages suivantes :

Publication sur Itunes Connect

Url : https://appstoreconnect.apple.com/

Dans la section "Mes apps", ajouter une nouvelle application en cliquant sur le bouton "+". Complétez le formulaire qui apparaît, en ajoutant le nom de l'ID du fichier config.xml dans l'item UGS.

Complétez les informations liées à l'application (nom, description,..), puis dans la partie App version, ajoutez des images et surtout importez votre fichier compilé en allant dans la section "Builds".

Dès que vous êtes prêt, cliquez sur Submit for Review, et priez que le technicien Apple qui s'occupera de valider votre application ne sois pas trop dur avec vous.

N'hésitez surtout à visitez la page https://ionic.mobiletuto.com/chap11/ et à y poser vos questions, si vous rencontrez des difficultés dans la publication

Annexes :