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
Prérequis
Pour terminer ce didacticiel, vous devez d'abord avoir configuré les éléments suivants :
-
Un Compte AWS
-
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
Dans cet exemple de configuration, vous allez configurer et utiliser un compartiment Amazon S3 pour le stockage.
-
Initialisez match dans votre projet :
fastlane match init
-
Lorsque vous y êtes invité, choisissez S3 comme mode de stockage.
-
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'match
action à 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.
-
Créez ou ajoutez le Gymfile, Appfile
, Snapfile , Deliverfile en fonction des exigences de construction de votre projet. -
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.
-
Accédez à votre cookie de session Fastlane comme suit.
-
Clé secrète -
FASTLANE_SESSION
-
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>
-
-
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
-
Clé secrète -
MATCH_PASSWORD
-
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.
-
Dans la console, accédez à CodeBuild et créez un nouveau parc informatique.
-
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.
Ouvrez la AWS CodeBuild console sur https://console.aws.amazon.com/codesuite/codebuild/home
. -
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).
-
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.
-
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)
-
-
-
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.