iOS Code Signing & Provisioning in a Nutshell

Je développe des Apps depuis plus de 3 ans maintenant et 1 chose qui m’agace toujours est le Code Signing et Provisioning dans iOS. Que sont les identités de signature ? Pourquoi dois-je créer des profils d’approvisionnement et me soucier de ces choses en tant que développeur ? Si vous n’avez pas de bonnes réponses à ces questions et que vous n’avez vraiment pas envie de lire les Apple Docs, voici, je l’espère, l’article qui expose l’ensemble du processus pour vous et pour moi comme référence en moins de 5 Minutes.

Je suis sûr que beaucoup d’entre vous peuvent apprendre des choses rapidement juste en lisant un texte mais ce que j’aime vraiment, c’est d’obtenir des choses expliquées de manière visuelle avec des boîtes et des flèches. Donc, le plus gros problème pour moi est qu’il n’y a pas de tableau ou de graphique qui sélectionne toutes les parties pertinentes et montre comment tout fonctionne ensemble d’une manière facile à comprendre. C’est la raison pour laquelle je vais essayer d’en créer un à la fin de ce post. Commençons.

D’abord, rassemblons les principaux termes, sur lesquels vous tomberez lorsque vous essayerez de trouver n’importe quelle chose liée au provisionnement et à la signature de code sur Internet.

  • Xcode
  • Centre des membres
  • Keychain
  • Identité de signature
  • Clé privée &Clé publique
  • Profil de provisionnement
  • App. ID

Xcode &Centre des membres

Si vous êtes un développeur iOS, vous utiliserez généralement Xcode pour créer et gérer votre application et vos ressources et les télécharger sur l’Appstore. C’est tout ce que vous devez savoir sur Xcode pour suivre ce post. Si vous voulez en savoir plus, cliquez ici : Xcode

Après vous être inscrit au programme de développement d’Apple, vous pourrez vous connecter au centre des membres. C’est l’endroit où vous pouvez créer des profils de provisionnement, des App ID, des certificats, etc. Certaines parties du Centre des membres sont directement liées à Xcode. Par exemple, vous pouvez voir et créer vos identités de signature ou télécharger et rafraîchir les profils de provisionnement dans vos paramètres Xcode.

Identité de signature, clé publique &privée, application Keychain

Une chose que nous devons éclaircir est le terme Signing. Signer votre application permet à iOS d’identifier qui a signé votre application et de vérifier que votre application n’a pas été modifiée depuis que vous l’avez signée. L’identité de signature consiste en une paire de clés publique-privée qu’Apple crée pour vous. Pensez à la clé publique comme à un mécanisme de verrouillage uniquement, vous devez donc connaître la clé privée pour déballer, déverrouiller ou décoder à nouveau les données.

D’où vient la paire de clés publique et privée et comment demander un certificat qui les contient ? Toute cette magie se produit lorsque vous créez une demande de signature de certificat (CSR) via l’application d’accès au trousseau de clés. Dans ce cas, l’application Keychain créera une clé privée et un fichier certSigningRequest que vous téléchargerez ensuite vers Apple. Apple validera la demande et émettra un certificat pour vous. Le certificat contiendra la clé publique que vous pourrez télécharger sur votre système. Après l’avoir téléchargée, vous devez la placer dans votre application d’accès au trousseau de clés en double-cliquant dessus. Il est utilisé par les fonctions cryptographiques pour générer une signature unique pour votre application, qui est essentiellement votre Code Signing Identity.

Le certificat sera également disponible via le Centre des membres, mais il ne contiendra que la clé publique, alors gardez cette clé privée en sécurité.

Un certificat intermédiaire est également nécessaire pour être dans votre trousseau de clés pour s’assurer que votre certificat de développeur ou de distribution est émis par une autre autorité de certification. Je sais que cela semble un peu confus, mais voici comment cela fonctionne. Il est installé automatiquement lors de la configuration de Xcode la première fois, donc fondamentalement, vous n’avez pas besoin de vous en soucier tant que ça car il est configuré automatiquement.

Profil de provisionnement &App ID

Comme nous le savons, Apple aime garder les choses sécurisées, il n’est donc pas possible d’installer une App sur n’importe quel appareil iOS existant en utilisant uniquement le certificat. C’est là que les profils de provisionnement entrent en jeu. Un Provisioning Profile doit être installé sur chaque appareil sur lequel le code de votre application doit s’exécuter. Chaque profil de développement contiendra un ensemble de certificats de développement iPhone, des identifiants uniques d’appareil et un identifiant d’application. Un App ID est une chaîne en deux parties utilisée pour identifier une ou plusieurs apps d’une même équipe de développement.

Les appareils spécifiés dans le Development Provisioning Profile ne peuvent être utilisés pour les tests que par les personnes dont les certificats de développement sont inclus dans le profil. Un seul appareil peut contenir plusieurs profils de provisionnement. La différence entre les profils de développement et de distribution est que les profils de distribution ne spécifient aucun Device ID. Si vous voulez publier une App qui doit être limitée à un certain nombre de dispositifs enregistrés, vous devez utiliser un profil Ad-Hoc pour cela.

Chart

Voici le tableau que j’ai trouvé. Si vous découvrez des choses que j’ai manquées ou expliquées de la mauvaise façon, faites-le moi savoir. Comme on l’a dit, c’est la première fois que j’essaie vraiment de comprendre les rouages du provisionnement et de la signature de code. Je sais qu’il y a beaucoup plus à dire mais je pense que c’est un bon début pour tout ce qui concerne ce sujet. Je vais essayer de garder ce post à jour et de corriger tout ce qui ne va pas aussi vite que possible.

  1. Xcode sera installé et le certificat intermédiaire sera poussé dans le trousseau
  2. La demande de signature de certificat (CSR) sera créée.
  3. La clé privée sera générée en même temps que la création du CSR et stockée dans le trousseau
  4. Le CSR sera téléchargé dans le Member Center
  5. Apple vérifiera tout et émettra le certificat
  6. Le certificat sera téléchargé sur votre ordinateur
  7. Le certificat sera poussé dans le trousseau et associé à la clé privée pour former l’identité de signature de code
  8. Le profil de provisionnement sera créé en utilisant un certificat, App ID et Device Identifiers et téléchargé par Xcode
  9. Xcode signera l’App et poussera les Provisioning Profiles sur l’appareil
  10. iOS prouvera si tout est correctement configuré.Cela signifie que le Provisioning Profile doit inclure le certificat que vous avez utilisé pour signer l’App, l’UDID de votre appareil et l’identifiant correct de l’App.
  11. Votre App devrait fonctionner maintenant!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.