View a markdown version of this page

Tutorial: firma del codice Apple con Fastlane in CodeBuild uso GitHub per l'archiviazione dei certificati - AWS CodeBuild

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: firma del codice Apple con Fastlane in CodeBuild uso GitHub per l'archiviazione dei certificati

fastlane è un popolare strumento di automazione open source per automatizzare le distribuzioni e le versioni beta delle tue app iOS e Android. Gestisce tutte le attività noiose, come la generazione di schermate, la firma del codice e il rilascio dell'applicazione.

Questo esempio dimostra come configurare la firma del codice Apple utilizzando Fastlane in un CodeBuild progetto in esecuzione su un parco macchine Mac, GitHub come spazio di archiviazione per certificati e profili di provisioning.

Prerequisiti

Per completare questo tutorial, devi prima aver impostato quanto segue:

  • Un Account AWS

  • Un account Apple Developer

  • Un GitHub archivio privato per l'archiviazione dei certificati

  • fastlane installato nel tuo progetto - Guida all'installazione di fastlane

Passaggio 1: configura Fastlane Match with GitHub sul tuo computer locale

Fastlane Match è uno degli strumenti di Fastlane e consente una configurazione senza interruzioni per la firma del codice sia nell'ambiente di sviluppo locale che in quello attivo. CodeBuild Fastlane Match archivia tutti i certificati di firma del codice e i profili di provisioning in un Git repository/S3 Bucket/Google Cloud Storage e scarica e installa i certificati e i profili necessari quando richiesto.

In questa configurazione di esempio, configureremo e utilizzeremo un repository Git per l'archiviazione.

  1. Inizializza match nel tuo progetto:

    fastlane match init
  2. Quando richiesto, scegli GitHub come modalità di archiviazione.

  3. Aggiorna il tuo `Matchfile` per usare: GitHub

    git_url("https://github.com/your-username/your-certificate-repo.git") storage_mode("git") type("development") # The default type, can be: appstore, adhoc, enterprise or development
Nota

Assicurati di inserire l'URL HTTPS per il tuo repository Git affinché fastlane possa autenticarsi e clonare correttamente. Altrimenti, potresti visualizzare un errore di autenticazione quando tenti di utilizzare match.

Passo 2: Configura il tuo Fastfile

Crea o aggiorna il tuo `Fastfile` con la seguente corsia.

Attivato CodeBuild, Fastlane Match dovrà essere eseguito ogni volta che crei e firmi la tua app. Il modo più semplice per farlo è aggiungere l'matchazione alla corsia che crea la tua app.

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
Nota

Assicurati di aggiungere qualcosa setup_ci alla before_all sezione in modo che Fastfile l'azione di abbinamento funzioni correttamente. Ciò garantisce l'utilizzo di un portachiavi Fastlane temporaneo con le autorizzazioni appropriate. Senza utilizzarlo potresti vedere errori di compilazione o risultati incoerenti.

Passo 3: Esegui il comando fastlane match per generare i rispettivi certificati e profili

Il comando fastlane match per il tipo specificato (ad esempio development, appstore, adhoc, enterprise) genererà il certificato e il profilo se non è disponibile nell'archivio remoto. I certificati e i profili verranno archiviati da fastlane. GitHub

bundle exec fastlane match appstore

L'esecuzione del comando sarà interattiva e fastlane chiederà di impostare una passphrase per decrittografare i certificati.

Fase 4: Crea il file di candidatura per il tuo progetto

Crea o aggiungi il file dell'applicazione in base al tuo progetto.

  1. Crea o aggiungi Gymfile, Appfile, Snapfile , Deliverfile in base ai requisiti di compilazione del tuo progetto.

  2. Salva le modifiche nel tuo repository remoto.

Fase 5: Creare variabili di ambiente in Secrets Manager

Crea tre segreti per memorizzare il cookie di sessione Fastlane e la passphrase corrispondente. Per ulteriori informazioni sulla creazione di segreti in Secrets Manager, consulta Creare un AWS Secrets Manager segreto.

  1. Accedi al tuo cookie di sessione fastlane come segue.

    1. Chiave segreta - FASTLANE_SESSION

    2. Valore segreto: cookie di sessione generato dall'esecuzione del seguente comando sul computer locale.

      Nota

      Questo valore è disponibile dopo l'autenticazione in un file locale:~/.fastlane/spaceship/my_appleid_username/cookie.

      fastlane spaceauth -u <Apple_account>
  2. Password Fastlane Match - Per consentire a Fastlane Match di decrittografare i certificati e i profili archiviati nel repository Git, è necessario aggiungere la passphrase di crittografia configurata nella fase di configurazione di Match alle variabili di ambiente del progetto. CodeBuild

    1. Chiave segreta - MATCH_PASSWORD

    2. Valore segreto -<match passphrase to decrypt certificates>. La passphrase viene impostata durante la generazione dei certificati nella Fase 3.

  3. FastlaneMATCH_GIT_BASIC_AUTHORIZATION: imposta un'autorizzazione di base per la partita:

    1. Chiave segreta:

      MATCH_GIT_BASIC_AUTHORIZATION

    2. Valore segreto: il valore deve essere una stringa codificata in base64 del nome utente e del token di accesso personale (PAT) nel formato. username:password Puoi generarlo usando il seguente comando:

      echo -n your_github_username:your_personal_access_token | base64

      Puoi generare il tuo PAT sulla GitHub console in Il tuo profilo > Impostazioni > Impostazioni sviluppatori > Token di accesso personale. Per ulteriori informazioni, consulta la seguente guida: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens.

Nota

Durante la creazione dei segreti di cui sopra in Secrets Manager, ricordati di dare un nome segreto con il seguente prefisso: /CodeBuild/

Fase 6: Creare una flotta di computer

Crea la flotta di elaborazione per il tuo progetto.

  1. Nella console, accedi CodeBuild e crea una nuova flotta di elaborazione.

  2. Scegli macOS come sistema operativo e seleziona il tipo di elaborazione e l'immagine appropriati.

Fase 7: Creare un progetto in CodeBuild

Crea il tuo progetto in CodeBuild.

  1. Apri la AWS CodeBuild console all'indirizzo https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Creare un progetto di compilazione. Per informazioni, consulta Creare un progetto di compilazione (console) e Esecuzione di una compilazione (console).

  3. Configura il tuo fornitore di sorgenti (ad esempio GitHub, CodeCommit). Questo è l'archivio dei sorgenti del progetto iOS e non il repository dei certificati.

  4. In Environment (Ambiente):

    • Scegli Capacità riservata.

    • Per Flotta, seleziona la flotta creata sopra.

    • Fornisci il nome del ruolo di servizio che CodeBuild verrà creato per te.

    • Fornisci le seguenti variabili di ambiente.

      • Nome:MATCH_PASSWORD, Valore:<secrets arn>, Tipo: Secrets Manager (Secrets ARN creato nel passaggio 5 per MATCH_PASSWORD)

      • Nome:FASTLANE_SESSION, Valore:<secrets arn>, Tipo: Secrets Manager (Secrets ARN creato nel passaggio 5 per FASTLANE_SESSION)

      • Nome:MATCH_GIT_BASIC_AUTHORIZATION, Valore:<secrets ARN>, Tipo: Secrets Manager Secrets ARN (creato al passaggio 5 per) MATCH_GIT_BASIC_AUTHORIZATION

  5. In Buildspec, aggiungi quanto segue:

    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)

Passaggio 8: esegui la build

Eseguire la compilazione. Puoi rivedere lo stato della build e accedere CodeBuild.

Una volta completato il lavoro, sarai in grado di visualizzare il registro del lavoro.

Risoluzione dei problemi

  • Se riscontri problemi di accesso al GitHub repository, ricontrolla il tuo token di accesso personale e la variabile di ambiente MATCH_GIT_BASIC_AUTHORIZATION.

  • Se riscontri problemi con la decrittografia dei certificati, assicurati di aver impostato la passphrase corretta nella variabile di ambiente MATCH_PASSWORD.

  • Per problemi di firma del codice, verifica che il tuo account Apple Developer disponga dei certificati e dei profili necessari e che l'identificatore del pacchetto nel tuo progetto Xcode corrisponda a quello nel tuo profilo di provisioning.

Considerazioni relative alla sicurezza

Di seguito sono riportate le considerazioni sulla sicurezza per questo tutorial.

  • Mantieni privato il tuo GitHub archivio per i certificati e controlla regolarmente gli accessi.

  • Prendi in considerazione l'utilizzo AWS Secrets Manager per archiviare informazioni sensibili come MATCH_PASSWORD e FASTLANE_SESSION.

Questo esempio fornisce una configurazione per la firma del codice iOS con Fastlane in uso per l'archiviazione dei certificati. CodeBuild GitHub Potrebbe essere necessario modificare alcuni passaggi in base ai requisiti e all' CodeBuild ambiente specifici del progetto. Questo approccio sfrutta i AWS servizi per una maggiore sicurezza e integrazione all'interno dell' AWS ecosistema.