Le fonctionnement des licences Apple Developer (3/3)

Dans les précédentes parties de cet article, nous avons vu les différentes licences Apple Developer et leur fonctionnement global.
Dans cette dernière partie nous allons voir comment paramétrer un projet d’application iOS sous XCode pour distribuer une application grâce à la licence.

Paramétrage du projet

Pour exporter et signer correctement, des paramètres de compilation doivent être définis sur la cible (Xcode target) de l’application :

  1. Bundle Identifier (onglet Général) : identifiant unique de l’application. Cet identifiant doit correspondre à un App Id ou un Wildcard App Id renseigné sur la licence,
  2. Team (onglet général) : licence à utiliser identifiée par son nom,
  3. Code Sign Identity (onglet Build Settings) : doit renseigner le certificat à utiliser en mode Debug et en mode Release
    • Debug : il faut choisir un certificat Developer spécifique ou « iPhone Developer » qui permet de choisir automatiquement le bon certificat (primordial lors du travail en équipe puisque chaque développeur possède son propre certificat),
    • Release : il faut choisir le certificat de Distribution à utiliser, manuellement ou « iPhone Distribution » pour choisir automatiquement le bon certificat de Distribution (si disponible dans le Trousseau d’accès),
  4. Provisioning Profile: doit renseigner le Provisioning Profile utilisé en mode Debug et en mode Release. Au préalable, il faut rafraîchir la liste des Provisioning Profile depuis les préférences d’XCode :
    • Debug : il faut choisir le Provisioning Profile qui a été spécifiquement créé en mode Debug pour cette application,
    • Release : il faut choisir le Provisioning Profile qui a été spécifiquement créé en mode Distribution pour cette application.

 

XCode Archive

Pour exporter et distribuer le projet depuis XCode, il faut commencer par faire « une archive ». Une archive est un conteneur de tout le code compilé de l’application avant son export. Elle peut être utilisée par n’importe quelle licence pour signer l’application finale. Une archive peut s’apparenter à un fichier IPA qui n’a pas encore été signé avec une licence.

Pour faire une archive de l’application :

  1. Choisir un périphérique de destination :
    • « iOS Device » pour XCode 6 et inférieur ou « Generic iOS Device » depuis XCode 7 si il n’y a pas de iDevice disponible,
    •  Ou brancher un iDevice enregistré sur la licence et le choisir en destination du build,
  2. Menu Build > Archive,
  3. A la fin de la compilation, XCode ouvre la fenêtre « Organizer » où se trouve l’archive construite.

 

Export de l’application

À partir de l’archive construite, il est possible de choisir parmi 4 options d’exports de l’application :

Export of an iOS app

  1. Save for iOS App Store Deployment : exporte le fichier IPA de l’application avec le certificat de Distribution. Ce mode n’est compatible qu’avec la configuration B1 du tableau récapitulatif,
  2. Save for Ad Hoc Deployment : exporte le fichier IPA de l’application avec le certificat de Distribution (via Provisionning profile Ad-Hoc). Cette option d’export est compatible avec les configurations B2, B3, D2 et D3 du tableau récapitulatif,
  3. Save for Enterprise Deployment : exporte le fichier IPA de l’application avec le certificat de Distribution. Cette option d’export est compatible avec les configurations D2 et D3 du tableau récapitulatif,
  4. Save for Development Deployment : exporte le fichier IPA de l’application avec le certificat Developer. Cette option d’export est compatible avec les configurations A2, A3, C2 et C3 du tableau récapitulatif.

Les modes A4 et C4 du tableau récapitulatif, ne sont pas représentés ici, car il s’agit du déploiement direct d’une application iOS depuis le projet XCode vers le périphérique branché sur la machine de développement.

Voici un rappel du tableau récapitulant les possibilités d’export fournies par chacune des licences :

  1. ROUGE: pas de distribution possible via ce canal pour la licence et le mode spécifiés,
  2. ORANGE FONCÉ: distribution possible via ce canal pour la licence et le mode spécifiés, uniquement sur les périphériques de développement enregistrés sur la licence et autorisés par le Provisioning Profile correspondant à l’application,
  3. ORANGE CLAIR: distribution possible via ce canal pour la licence et le mode spécifiés, uniquement sur les périphériques de développement enregistrés sur la licence sans restriction, avec utilisation du Provisioning Profile Ad-Hoc,
  4. VERT: distribution possible via ce canal pour la licence et le mode spécifié pour tous les iDevices compatibles avec utilisation du Provisioning Profile de production (AppStore / In-House).

* D2 et D3 : Attention, en mode distribution « In-House » avec la licence Enterprise, Apple impose que l’accès à l’application authentifie les utilisateurs afin de ne pas concurrencer l’AppStore d’Apple.

** B1: distribution sur AppStore ou TestFlight (voir ci-après)

 

TestFlight

TestFlight est un pseudo-canal de distribution d’une application iOS. TestFlight permet de créer des campagnes de tests avant une publication sur l’AppStore. Il s’agissait d’une entreprise spécialisée dans les campagnes de tests mobiles (Android et iOS), rachetée par Apple en février 2014, et intégrée à iTunes Connect, le portail de livraison des applications iOS sur l’AppStore. Il n’est donc aujourd’hui plus possibles d’utiliser TestFlight pour réaliser des campagnes de test d’applications Android.

Pour distribuer une application sur TestFlight, il faut choisir le mode d’export  « Save for iOS App Store Deployment » puis pousser l’application vers iTunes Connect depuis l’utilitaire « Application Loader » intégré à XCode. Depuis iTunes Connect, il est possible de récupérer le build et de le proposer en campagnes de test avec TestFlight.

TestFlight permet de réaliser des campagnes de tests :

  1. Internes : définition d’un nombre limité à 25 utilisateurs ayant accès à l’application en test. Ces utilisateurs doivent être inscrits sur iTunes Connect,
  2. Externes : définition d’un nombre limité à 2000 utilisateurs ayant accès à l’application en test. Ces utilisateurs peuvent être externes ; ils doivent seulement posséder un compte Apple ID.

Les applications en test via TestFlight sont ensuite récupérées par les utilisateurs sur leur iDevice via l’application TestFlight. L’utilisation d’une application en test via TestFlight est limitée à 30 jours. Ce n’est donc pas une solution pérenne de distribution.

 

Conclusion

La licence Apple Developer peut paraître contraignante ou sa mise en place fastidieuse. C’est aussi ce qui garantit la sécurité et la fiabilité des environnements iOS, macOS et dérivés d’Apple. Quelque soit le projet, il faut toujours bien réfléchir aux points suivants :

  1. A qui s’adresse mon application ?
  2. Comment accéder à mon application ?

La compréhension du fonctionnement d’une licence Apple Developer et les réponses à ces questions sont primordiales pour choisir la bonne licence et un mode de distribution adéquat à votre application.

Leave a Reply

Your email address will not be published. Required fields are marked *