Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Tutoriel : signature de code Apple avec Fastlane lors de CodeBuild l'utilisation de S3 pour le stockage de certificats

Mode de mise au point
Tutoriel : signature de code Apple avec Fastlane lors de CodeBuild l'utilisation de S3 pour le stockage de certificats - AWS CodeBuild

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

fastlane est un outil d'automatisation open source populaire qui permet d'automatiser les déploiements et les versions bêta de vos applications iOS et Android. Il gère toutes les tâches fastidieuses, comme la génération de captures d'écran, la signature de code et la publication de votre application.

Prérequis

Pour terminer ce didacticiel, vous devez d'abord avoir configuré les éléments suivants :

  • Un Compte AWS

  • Un compte Apple Developer

  • Un compartiment S3 pour le stockage des certificats

  • fastlane installé dans votre projet - Guide d'installation de fastlane

Étape 1 : configurer Fastlane Match avec S3 sur votre machine locale

Fastlane Match est l'un des outils de Fastlane. Il permet une configuration fluide pour la signature de code, à la fois dans votre environnement de développement local et ailleurs. CodeBuild Fastlane Match stocke tous vos certificats de signature de code et profils de provisionnement dans un stockage Git repository/S3 Bucket/Google Cloud, et télécharge et installe les certificats et profils nécessaires en cas de besoin.

Dans cet exemple de configuration, vous allez configurer et utiliser un compartiment Amazon S3 pour le stockage.

  1. Initialisez match dans votre projet :

    fastlane match init
  2. Lorsque vous y êtes invité, choisissez S3 comme mode de stockage.

  3. Mettez à jour votre « Matchfile » pour utiliser S3 :

    storage_mode("s3") s3_bucket("your-s3-bucket-name") s3_region("your-aws-region") type("appstore") # The default type, can be: appstore, adhoc, enterprise or development

Étape 2 : Configurez votre Fastfile

Créez ou mettez à jour votre `Fastfile` avec la ligne suivante.

Activé CodeBuild, Fastlane Match devra être exécuté chaque fois que vous créez et signez votre application. Le moyen le plus simple de le faire est d'ajouter l'matchaction à la voie qui crée votre application.

default_platform(:ios) platform :ios do before_all do setup_ci end desc "Build and sign the app" lane :build do match(type: "appstore", readonly: true) gym( scheme: "YourScheme", export_method: "app-store" ) end end
Note

Assurez-vous d'ajouter des setup_ci éléments à la before_all section Fastfile pour que l'action de match fonctionne correctement. Cela garantit qu'un trousseau Fastlane temporaire doté des autorisations appropriées est utilisé. Si vous ne l'utilisez pas, vous risquez de rencontrer des échecs de compilation ou des résultats incohérents.

Étape 3 : Exécutez la fastlane match commande pour générer les certificats et profils respectifs

La commande fastlane match pour le type donné (par exemple, development, appstore, adhoc, enterprise) générera le certificat et le profil s'ils ne sont pas disponibles dans le magasin distant. Les certificats et les profils seront stockés dans S3 par fastlane.

bundle exec fastlane match appstore

L'exécution de la commande sera interactive et fastlane demandera de définir une phrase secrète pour déchiffrer les certificats.

Étape 4 : Créez le dossier de candidature pour votre projet

Créez ou ajoutez le fichier de candidature en fonction de votre projet.

  1. Créez ou ajoutez le Gymfile, Appfile, Snapfile, Deliverfile en fonction des exigences de construction de votre projet.

  2. Validez les modifications dans votre dépôt distant

Étape 5 : Création de variables d'environnement dans Secrets Manager

Créez deux secrets pour stocker le cookie de session Fastlane et le mot de passe correspondant. Pour plus d'informations sur la création de secrets dans Secrets Manager, voir Création d'un AWS Secrets Manager secret.

  1. Accédez à votre cookie de session Fastlane comme suit.

    1. Clé secrète - FASTLANE_SESSION

    2. Valeur secrète : cookie de session généré par l'exécution de la commande suivante sur votre ordinateur local.

      Note

      Cette valeur est disponible après authentification dans un fichier local :~/.fastlane/spaceship/my_appleid_username/cookie.

      fastlane spaceauth -u <apple account>
  2. Phrase de passe Fastlane Match - Pour permettre à Fastlane Match de déchiffrer les certificats et les profils stockés dans le compartiment S3, il est nécessaire d'ajouter le mot de passe de chiffrement que vous avez configuré à l'étape de configuration de Match aux variables d'environnement du projet. CodeBuild

    1. Clé secrète - MATCH_PASSWORD

    2. Valeur secrète -<match passphrase to decrypt certificates>. Le mot de passe est défini lors de la génération des certificats à l'étape 3.

Note

Lorsque vous créez les secrets ci-dessus dans Secrets Manager, n'oubliez pas de donner un nom au secret avec le préfixe suivant : /CodeBuild/

Étape 6 : Création d'un parc informatique

Créez le parc informatique pour votre projet.

  1. Dans la console, accédez à CodeBuild et créez un nouveau parc informatique.

  2. Choisissez « macOS » comme système d'exploitation et sélectionnez le type de calcul et l'image appropriés.

Étape 7 : Création d'un projet dans CodeBuild

Créez votre projet dans CodeBuild.

  1. Ouvrez la AWS CodeBuild console sur https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Créez un projet de génération. Pour plus d’informations, consultez Création d'un projet de génération (console) et Exécution d'une génération (console).

  3. Configurez votre fournisseur de source (tel que GitHub, CodeCommit). Il s'agit du référentiel des sources du projet iOS et non du référentiel de certificats.

  4. Dans Environment (Environnement) :

    • Choisissez Capacité réservée.

    • Pour Fleet, sélectionnez la flotte créée ci-dessus.

    • Indiquez le nom du rôle de service qui CodeBuild sera créé pour vous.

    • Fournissez les variables d'environnement ci-dessous.

      • Nom :MATCH_PASSWORD, Valeur :<secrets arn>, Type : Secrets Manager (Secrets ARN créé à l'étape 5 pour MATCH_PASSWORD)

      • Nom :FASTLANE_SESSION, Valeur :<secrets arn>, Type : Secrets Manager (ARN de secrets créé à l'étape 5 pour FASTLANE_SESSION)

  5. Dans Buildspec, ajoutez ce qui suit :

    version: 0.2 phases: install: commands: - gem install bundler - bundle install build: commands: - echo "Building and signing the app..." - bundle exec fastlane build post_build: commands: - echo "Build completed on date" artifacts: files: - '*/.ipa' name: app-$(date +%Y-%m-%d)

Étape 8 : Configuration du rôle IAM

Une fois le projet créé, assurez-vous que le rôle de service de votre CodeBuild projet est autorisé à accéder au compartiment S3 contenant les certificats. Ajoutez la politique suivante au rôle :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": "arn:aws:s3:::your-s3-bucket-name" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Resource": "arn:aws:s3:::your-s3-bucket-name/*" } ] }

Étape 9 : Exécuter le build

Exécutez la génération. Vous pouvez consulter l'état de la construction et vous connecter CodeBuild.

Une fois la tâche terminée, vous pourrez consulter le journal de la tâche.

Résolution des problèmes

  • Si vous rencontrez des problèmes lors de l'extraction des certificats, assurez-vous que vos autorisations IAM sont correctement configurées pour l'accès S3.

  • Si vous rencontrez des problèmes lors du déchiffrement des certificats, assurez-vous de définir le mot de passe correct dans la variable d'environnement MATCH_PASSWORD.

  • Pour les problèmes de signature de code, vérifiez que votre compte Apple Developer possède les certificats et profils nécessaires, et que l'identifiant du bundle de votre projet Xcode correspond à celui de votre profil d'approvisionnement.

Considérations sur la sécurité

Les considérations de sécurité suivantes concernent ce didacticiel.

  • Assurez-vous que votre compartiment S3 possède les paramètres de sécurité appropriés, y compris le chiffrement au repos. Assurez-vous en particulier que le bucket n'est pas accessible au public et limitez l'accès uniquement CodeBuild au système qui a besoin d'un accès.

  • Envisagez de l'utiliser AWS Secrets Manager pour stocker des informations sensibles telles que MATCH_PASSWORD et FASTLANE_SESSION.

Cet exemple fournit une configuration pour la signature de code iOS avec Fastlane lors de CodeBuild l'utilisation d'Amazon S3 pour le stockage de certificats. Vous devrez peut-être ajuster certaines étapes en fonction des exigences et de CodeBuild l'environnement spécifiques de votre projet. Cette approche tire parti des AWS services pour améliorer la sécurité et l'intégration au sein de l' AWS écosystème.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.