Partage via


Signer votre application mobile

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Lors du développement d’une application pour les systèmes d’exploitation Android ou Apple, vous devez éventuellement gérer les certificats de signature et, dans le cas des applications Apple, des profils d’approvisionnement. Cet article explique comment les gérer en toute sécurité pour la signature et l’approvisionnement de votre application.

Conseil

Utilisez un agent de build Linux, macOS ou Windows hébergé par Microsoft ou configurez votre propre agent. Consultez Agents de build et de mise en production.

Cet article couvre les points suivants :

Signer votre application Android

Procédez comme suit pour signer votre application Android tout en conservant votre certificat de signature sécurisé :

  1. Tout d’abord, obtenez un fichier de magasin de clés qui contient votre certificat de signature. La documentation Android décrit le processus de génération d’un fichier de magasin de clés et de sa clé correspondante.

  2. Créez votre pipeline de build à partir du modèle de build Android ou Xamarin.Android. Ou, si vous disposez déjà d’un pipeline de build, ajoutez la tâche de signature Android après la tâche qui génère votre APK.

  3. Recherchez la case à cocher Signer l’APK de la tâche de signature Android et cochez-la.

  4. En regard du champ Fichier de magasin de clés, sélectionnez l’icône des paramètres et chargez votre fichier de magasin de clés dans la bibliothèque Fichiers sécurisés. Pendant le chargement, votre magasin de clés est chiffré et stocké en toute sécurité.

  5. Une fois que votre magasin de clés a été chargé dans la bibliothèque Fichiers sécurisés, sélectionnez-le dans la liste déroulante Fichiers de magasin de clés.

  6. Accédez à l’onglet Variables et ajoutez les variables suivantes. Dans leur colonne Valeur, entrez votre Mot de passe de magasin de clés, votre Alias de clé et votre Mot de passe de clé.

    • keystore-password : mot de passe du fichier de magasin de clés non chiffré. Veillez à sélectionner l’icône verrouiller. Cela sécurise votre mot de passe et le masque dans les journaux.

    • key-alias : l’alias de clé du certificat de signature que vous avez généré.

    • key-password : le mot de passe de la clé associée à l’alias spécifié. Là encore, veillez à sélectionner l’icône Verrouiller.

      variables de signature Android

  7. Revenez à l’onglet Tâches et référencez les noms de vos variables nouvellement créées dans les options de signature.

    valeurs d’entrée de signature Android

Enregistrez votre pipeline de build et vous êtes prêt ! Tout agent de build sera désormais en mesure de signer en toute sécurité votre application sans gestion des certificats sur l’ordinateur de build lui-même.

Signer votre application Apple iOS, macOS, tvOS ou watchOS

Pour que votre build Xcode ou Xamarin.iOS signe et approvisionne votre application, elle doit accéder à votre certificat de signature P12 et à un ou plusieurs profils d’approvisionnement. Les sections suivantes expliquent comment obtenir ces fichiers.

Obtenir votre certificat de signature P12

Après avoir créé votre certificat de signature de développement ou de distribution, exportez-le vers un fichier .p12 à l’aide de Xcode ou de l’application Trousseaux d’accès sur macOS.

  1. Pour exporter à l’aide de Xcode 8 ou inférieur, accédez à Xcode>Préférences…>Comptes et sélectionnez votre compte développeur Apple.

  2. Sélectionnez Afficher les détails…, cliquez avec le bouton droit sur l’identité de signature que vous souhaitez exporter, puis sélectionnez Exporter….

  3. Entrez un nom de fichier et un mot de passe. Notez le mot de passe, car vous en aurez besoin ultérieurement.

    Certificat d’exportation Xcode

  4. Vous pouvez également suivre un processus similaire à l’aide de l’application Trousseaux d’accès sur macOS ou générer un certificat de signature sur Windows. Utilisez la procédure décrite dans cet article si vous préférez cette méthode.

Obtenir votre profil d’approvisionnement

Vous pouvez télécharger votre profil d’approvisionnement d’application à partir du portail des développeurs d’Apple, sauf si votre application utilise la signature automatique. Découvrez comment télécharger un profil d’approvisionnement dans le portail des développeurs d’Apple.

Vous pouvez également utiliser Xcode pour accéder à ceux qui sont installés sur votre Mac.

  1. À l’aide de Xcode 8 ou inférieur, accédez à Xcode>Préférences…>Comptes et sélectionnez votre compte développeur Apple.

  2. Cliquez avec le bouton droit sur le profil d’approvisionnement que vous souhaitez utiliser et sélectionnez Afficher dans Finder.

  3. Copiez le fichier mis en surbrillance du Finder vers un autre emplacement et donnez-lui un nom de fichier descriptif.

    Xcode Afficher dans Finder

Configurer votre build

Il existe deux façons recommandées pour votre build d’accéder aux certificats de signature et aux profils d’approvisionnement pour la signature et l’approvisionnement de votre application :

  1. Les installer pendant la build
  2. Les préinstaller sur un agent de build macOS

Choisir l’un des onglets ci-dessous pour plus d’informations.

Utilisez cette méthode lorsque vous ne disposez pas d’accès durable à l’agent de build, comme les agents macOS hébergés. Le certificat P12 et le profil d’approvisionnement sont installés au début de la build et supprimés une fois qu’elle est terminée.

Installer le certificat P12 pendant votre build

Éditeur visuel
  1. Ajoutez la tâche Installer le certificat Apple à votre build avant la tâche Xcode ou Xamarin.iOS.
  2. En regard du champ Certificat (P12), sélectionnez l’icône des paramètres et chargez votre fichier P12 dans la bibliothèque Fichiers sécurisés. Pendant le chargement, votre certificat est chiffré et stocké en toute sécurité.
  3. Une fois votre certificat chargé dans la bibliothèque Fichiers sécurisés, sélectionnez-le dans la liste déroulante Certificat (P12).
  4. Accédez à l’onglet Variables et ajoutez une variable nommée P12password. Définissez sa valeur sur le mot de passe de votre certificat. Veillez à sélectionner l’icône verrouiller. Cela sécurise votre mot de passe et le masque dans les journaux.
  5. Revenez à l’onglet Tâches. Dans les paramètres de la tâche Installer le certificat Apple, référencez votre variable nouvellement créée dans le champ Mot de passe de certificat (P12) comme suit : $(P12password)
Exemple YAML
  1. Chargez votre fichier P12 dans la bibliothèque Fichiers sécurisés. Pendant le chargement, votre certificat est chiffré et stocké en toute sécurité.

  2. Accédez à l’onglet Variables et ajoutez une variable nommée P12password. Définissez sa valeur sur le mot de passe de votre certificat. Veillez à sélectionner l’icône verrouiller. Cela sécurise votre mot de passe et le masque dans les journaux.

  3. Ajoutez la tâche Installer le certificat Apple à votre YAML avant la tâche Xcode ou Xamarin.iOS :

    - task: InstallAppleCertificate@2
        inputs:
          certSecureFile: 'my-secure-file.p12' # replace my-secure-file.p12 with the name of your P12 file.
          certPwd: '$(P12password)'
    

Installer le profil d’approvisionnement pendant votre build

Éditeur visuel
  1. Ajoutez la tâche Installer le profil d’approvisionnement Apple à votre build avant la tâche Xcode ou Xamarin.iOS.
  2. Pour l’option Emplacement du profil d’approvisionnement, choisissez Fichiers sécurisés (dans YAML, secureFiles).
  3. En regard du champ Profil d’approvisionnement, sélectionnez l’icône des paramètres et chargez votre fichier de profil d’approvisionnement dans la bibliothèque Fichiers sécurisés. Pendant le chargement, votre certificat est chiffré et stocké en toute sécurité.
  4. Une fois que votre certificat a été chargé dans la bibliothèque Fichiers sécurisés, sélectionnez-le dans la liste déroulante Profil d’approvisionnement.
  5. Cochez la case intitulée Supprimer le profil après la build. Cela garantit que le profil d’approvisionnement ne reste pas sur l’ordinateur de l’agent.
Exemple YAML
  1. Chargez votre profil d’approvisionnement dans la bibliothèque Fichiers sécurisés. Pendant le chargement, votre certificat est chiffré et stocké en toute sécurité.

  2. Ajoutez la tâche Installer le profil d’approvisionnement Apple à votre YAML avant la tâche Xcode ou Xamarin.iOS :

    - task: InstallAppleProvisioningProfile@1
        inputs:
          provProfileSecureFile: 'my-provisioning-profile.mobileprovision' # replace my-provisioning-profile.mobileprovision with the name of your provisioning profile file.
    

    [REMARQUE] Supprimer le profil après la build est défini par défaut sur true.

Référencer les fichiers dans votre tâche Xcode

Éditeur visuel
  1. Sélectionnez la tâche Xcode.
  2. Pour l’option Style de signature, choisissez Signature manuelle.
  3. Dans le champ Identité de signature, entrez $(APPLE_CERTIFICATE_SIGNING_IDENTITY). Cette variable est automatiquement définie par la tâche Installer le certificat Apple pour le certificat que vous avez sélectionné.
  4. Dans le champ UUID du profil d’approvisionnement, entrez $(APPLE_PROV_PROFILE_UUID). Cette variable est automatiquement définie par la tâche Installer le profil d’approvisionnement Apple du profil d’approvisionnement que vous avez sélectionné.
Exemple YAML
- task: Xcode@5
  inputs:
    signingOption: 'manual'
    signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
    provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'

Référencer les fichiers dans votre tâche Xamarin.iOS

Éditeur visuel
  1. Sélectionnez la tâche Xamarin.iOS.
  2. Pour l’option Remplacer avec, choisissez Identificateurs.
  3. Dans le champ Identité de signature, entrez $(APPLE_CERTIFICATE_SIGNING_IDENTITY). Cette variable est automatiquement définie par la tâche Installer le certificat Apple pour le certificat que vous avez sélectionné.
  4. Dans le champ UUID du profil d’approvisionnement, entrez $(APPLE_PROV_PROFILE_UUID). Cette variable est automatiquement définie par la tâche Installer le profil d’approvisionnement Apple du profil d’approvisionnement que vous avez sélectionné.
Exemple YAML
- task: XamariniOS@2
    inputs:
      solutionFile: '**/*.iOS.csproj'
      signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
      signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'

Enregistrez votre pipeline de build et vous êtes prêt ! L’agent de build est désormais en mesure de signer et d’approvisionner votre application en toute sécurité.

Questions fréquentes (FAQ)

Ai-je besoin d’un agent ?

Vous avez besoin d’au moins un agent pour exécuter votre build ou mise en production.

Je fais face à des problèmes. Comment puis-je les résoudre ?

Consultez Résoudre les problèmes liés à la création et à la mise en production.

Je ne peux pas sélectionner un pool d’agents par défaut et je ne peux pas mettre ma build ou ma mise en production en attente. Comment la corriger ?

Consultez les Pools d’agents.

Ma tâche envoi (push) NuGet échoue avec l’erreur suivante : « Erreur : impossible d’obtenir le certificat émetteur local ». Comment puis-je résoudre ce problème ?

Cela peut être résolu en ajoutant un certificat racine approuvé. Vous pouvez ajouter la variable d’environnement NODE_EXTRA_CA_CERTS=file à votre agent de build ou ajouter la variable de tâche NODE.EXTRA.CA.CERTS=file dans votre pipeline. Pour plus d’informations sur cette variable, consultez la documentation Node.js. Consultez Définir des variables dans un pipeline pour obtenir des instructions sur la définition d’une variable dans votre pipeline.

J’utilise TFS localement et je ne vois pas certaines de ces fonctionnalités. Pourquoi cela ne fonctionne-t-il pas ?

Certaines de ces fonctionnalités sont disponibles uniquement sur Azure Pipelines et ne sont pas encore disponibles localement. Certaines fonctionnalités sont disponibles localement si vous avez effectué une mise à niveau vers la dernière version de TFS.