

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à.

# Crea e testa app iOS con AWS CodeCommit, AWS e CodePipeline AWS Device Farm
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm"></a>

*Abdullahi Olaoye, Amazon Web Services*

## Riepilogo
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-summary"></a>

Questo modello delinea i passaggi per creare una pipeline di integrazione e distribuzione continua (CI/CD) che utilizzi AWS per creare e CodePipeline testare applicazioni iOS su dispositivi reali su AWS. Il modello utilizza AWS CodeCommit per archiviare il codice dell'applicazione, lo strumento open source Jenkins per creare l'applicazione iOS e AWS Device Farm per testare l'applicazione costruita su dispositivi reali. Queste tre fasi sono orchestrate insieme in una pipeline utilizzando AWS. CodePipeline

Questo modello si basa sul post [Creazione e test di app iOS e iPadOS con AWS DevOps e servizi mobili](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/) sul DevOps blog AWS. Per istruzioni dettagliate, consulta il post del blog.

## Prerequisiti e limitazioni
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-prereqs"></a>

**Prerequisiti**
+ Un account AWS attivo
+ Un account per sviluppatori Apple
+ Crea server (macOS)
+ [Xcode](https://developer.apple.com/xcode/) versione 11.3 (installata e configurata sul server di build)
+ AWS Command Line Interface (AWS CLI[)](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) installata [e](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) configurata sulla workstation
+ Conoscenza di base di [Git](https://git-scm.com/docs)

**Limitazioni**
+ Il server di creazione dell'applicazione deve eseguire macOS. 
+ Il server di compilazione deve avere un indirizzo IP pubblico, in modo da CodePipeline potervi connettere in remoto per avviare le build.

## Architecture
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-architecture"></a>

**Stack tecnologico di origine**
+ Un processo di creazione di applicazioni iOS in locale che prevede l'utilizzo di un simulatore o di un test manuale su dispositivi fisici

**Stack tecnologico Target**
+ Un CodeCommit repository AWS per l'archiviazione del codice sorgente dell'applicazione
+ Un server Jenkins per la creazione di applicazioni utilizzando Xcode
+ Un pool di dispositivi AWS Device Farm per testare applicazioni su dispositivi reali

**Architettura Target**

Quando un utente esegue il commit delle modifiche al repository di origine, la pipeline (AWS CodePipeline) recupera il codice dal repository di origine, avvia una build Jenkins e passa il codice dell'applicazione a Jenkins. Dopo la compilazione, la pipeline recupera l'elemento della build e avvia un job di AWS Device Farm per testare l'applicazione su un pool di dispositivi.

 

![La pipeline CI/CD utilizza AWS CodePipeline per creare e testare applicazioni iOS su dispositivi reali.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/06fbd82f-4aed-441c-818c-5f89f56af78e/images/0ae3d7b6-b40c-44ef-9580-8c8266c3d841.png)


## Tools (Strumenti)
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-tools"></a>
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) è un servizio di distribuzione continua completamente gestito che ti aiuta ad automatizzare le pipeline di rilascio per aggiornamenti rapidi e affidabili di applicazioni e infrastrutture. CodePipeline automatizza le fasi di compilazione, test e distribuzione del processo di rilascio ogni volta che viene apportata una modifica al codice, in base al modello di rilascio definito.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) è un servizio di controllo del codice sorgente completamente gestito che ospita repository sicuri basati su Git. Permette ai team di collaborare facilmente sul codice in un ecosistema sicuro e altamente scalabile. CodeCommit elimina la necessità di gestire il proprio sistema di controllo del codice sorgente o di preoccuparsi di scalarne l'infrastruttura.
+ [AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) è un servizio di test delle applicazioni che ti consente di migliorare la qualità delle tue app web e mobili testandole su un'ampia gamma di browser desktop e dispositivi mobili reali, senza dover fornire e gestire alcuna infrastruttura di test.
+ [Jenkins](https://www.jenkins.io/) è un server di automazione open source che consente agli sviluppatori di creare, testare e distribuire il proprio software.

## Epiche
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-epics"></a>

### Configura l'ambiente di compilazione
<a name="set-up-the-build-environment"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa Jenkins sul server di build che esegue macOS. | Jenkins verrà utilizzato per creare l'applicazione, quindi devi prima installarlo sul server di compilazione. Per ottenere istruzioni dettagliate per questa e le attività successive, consulta il post sul blog di AWS [Creazione e test di app iOS e iPadOS con AWS DevOps e servizi mobili](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/) e altre risorse nella sezione [Risorse correlate](#build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-resources) alla fine di questo schema. | DevOps | 
| Configura Jenkins. | Segui le istruzioni sullo schermo per configurare Jenkins. | DevOps | 
| Installa il CodePipeline plugin AWS per Jenkins. | Questo plugin deve essere installato sul server Jenkins per consentire a Jenkins di interagire con il servizio CodePipeline AWS. | DevOps | 
| Crea un progetto Jenkins freestyle. | In Jenkins, crea un progetto freestyle. Configura il progetto per specificare i trigger e altre opzioni di configurazione della build. | DevOps | 

### Configurazione di AWS Device Farm
<a name="configure-aws-device-farm"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un progetto Device Farm. | Apri la console AWS Device Farm. Crea un progetto e un pool di dispositivi per i test. Per istruzioni, consulta il post del blog. | Developer | 

### Configura il repository dei sorgenti
<a name="configure-the-source-repository"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea un CodeCommit repository. | Crea un repository in cui verrà archiviato il codice sorgente. | DevOps | 
| Salva il codice dell'applicazione nel repository. | Connect al CodeCommit repository che hai creato. Invia il codice dal tuo computer locale al repository. | DevOps | 

### Configura la pipeline
<a name="configure-the-pipeline"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una pipeline in AWS CodePipeline. | Apri la CodePipeline console AWS e crea una pipeline. La pipeline orchestra tutte le fasi del processo. CI/CD Per istruzioni, consulta il post sul blog AWS [Creazione e test di app iOS e iPadOS con AWS DevOps e servizi mobili](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/). | DevOps | 
| Aggiungi una fase di test alla pipeline. | Per aggiungere una fase di test e integrarla con AWS Device Farm, modifica la pipeline. | DevOps | 
| Avvia la pipeline. | **Per avviare la pipeline e il CI/CD processo, scegliete Release change.** | DevOps | 

### Visualizza i risultati dei test applicativi
<a name="view-application-test-results"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Rivedi i risultati dei test. | Nella console AWS Device Farm, seleziona il progetto che hai creato ed esamina i risultati dei test. La console mostrerà i dettagli di ogni test. | Developer | 

## Risorse correlate
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-resources"></a>

**Step-by-step istruzioni per questo modello**
+ [Creazione e test di app iOS e iPadOS con AWS DevOps e servizi mobili](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/) (post DevOps sul blog AWS)

**Configurazione di AWS Device Farm**
+ [Console AWS Device Farm](https://console.aws.amazon.com/devicefarm)

**Configura il repository di origine**
+ [Crea un CodeCommit repository AWS](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-repository.html)
+ [Connect a un CodeCommit repository AWS](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html)

**Configura la pipeline**
+ [ CodePipeline Console AWS](https://console.aws.amazon.com/codesuite/codepipeline/home)

**Altre risorse**
+ [ CodePipeline Documentazione AWS](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [ CodeCommit Documentazione AWS](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)
+ [Documentazione di AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html)
+ [Documentazione Jenkins](https://www.jenkins.io/doc/)
+ [Installazione di Jenkins su macOS](https://www.jenkins.io/download/weekly/macos/)
+ [ CodePipeline Plugin AWS per Jenkins](https://plugins.jenkins.io/aws-codepipeline/)
+ [Installazione di Xcode](https://developer.apple.com/xcode/)
+ [Installazione](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) [e configurazione dell'interfaccia a riga di comando di AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [Documentazione Git](https://git-scm.com/docs)