Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Servizi di Azure DevOps
Questa guida introduttiva illustra come configurare una pipeline YAML in Azure Pipelines per compilare, testare e distribuire automaticamente un'app Android.
Un'organizzazione e un progetto di Azure DevOps in cui si dispone dell'autorizzazione per creare pipeline e distribuire app. Per creare un progetto, vedere Creare un progetto in Azure DevOps.
Un account GitHub.
Importante
Durante le procedure di GitHub, potrebbe essere richiesto di creare una connessione al servizio GitHub o di essere reindirizzati a GitHub per accedere, installare Azure Pipelines, autorizzare Azure Pipelines o eseguire l'autenticazione alle organizzazioni GitHub. Seguire le istruzioni visualizzate per completare il processo. Per altre informazioni, vedere Accedere ai repository GitHub.
Eseguire le attività seguenti per configurare una pipeline per una semplice applicazione Android.
La pagina di esecuzione della compilazione mostra i dettagli e lo stato di avanzamento della compilazione. Se si vuole controllare la pipeline in azione, selezionare Processo nella parte inferiore della pagina.
È ora disponibile una pipeline YAML android funzionante, azure-pipelines.yml, nel repository pronto per la personalizzazione.
Per apportare modifiche alla pipeline, selezionare Modifica nella pagina della pipeline. Le sezioni seguenti descrivono alcuni modi comuni per personalizzare la pipeline Android.
La pipeline YAML iniziale usa Gradle, uno strumento di compilazione open source comune per i progetti Android. Per altre informazioni, vedere l'attività Gradle.
Nell'attività di esempio il tasks
parametro compila il assembleDebug
tipo di compilazione. È possibile modificare il tasks
valore per le varianti di compilazione desiderate, ad esempio build
, test
e assembleRelease
.
L'attività di esempio presuppone anche che il gradlew
file si trova nella radice del repository. In caso contrario, modificare i workingDirectory
valori e gradleWrapperFile
di conseguenza.
Deve workingDirectory
essere simile alla radice del repository, ad esempio AndroidApps/MyApp
o $(system.defaultWorkingDirectory)/AndroidApps/MyApp
. Il gradleWrapperFile
percorso deve essere simile alla radice del repository, ad esempio AndroidApps/MyApp/gradlew
o $(system.defaultWorkingDirectory)/AndroidApps/MyApp/gradlew
.
- task: Gradle@3
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
publishJUnitResults: false
testResultsFiles: '**/TEST-*.xml'
tasks: 'assembleDebug'
Per altre informazioni sull'uso delle attività Gradle, vedere Uso delle attività nella documentazione di Gradle. Per altre informazioni sulle attività di compilazione, vedere Creare un APK di debug e Configurare le varianti di compilazione nella documentazione sullo sviluppo di Google Android.
Per l'esecuzione in un dispositivo invece di un emulatore, è necessario firmare il pacchetto dell'applicazione Android (APK). Zipaligning riduce la RAM usata dall'applicazione. Se la compilazione non firma e comprime il file APK, aggiungere l'attività Di firma Android alla pipeline. Per altre informazioni, vedere Firmare un'app per dispositivi mobili.
Per la sicurezza, archiviare e jarsignerKeystorePassword
jarsignerKeyPassword
in variabili segrete e usare tali variabili nella pipeline.
- task: AndroidSigning@2
inputs:
apkFiles: '**/*.apk'
jarsign: true
jarsignerKeystoreFile: 'pathToYourKeystoreFile'
jarsignerKeystorePassword: '$(jarsignerKeystorePassword)'
jarsignerKeystoreAlias: 'yourKeystoreAlias'
jarsignerKeyPassword: '$(jarsignerKeyPassword)'
zipalign: true
Per installare ed eseguire l'emulatore Android, aggiungere l'attività Bash alla pipeline e incollare il codice seguente. L'emulatore viene avviato come processo in background ed è disponibile nelle attività successive. Disporre i parametri dell'emulatore per adattarsi all'ambiente di test.
Importante
Se si usa un agente ospitato da Microsoft , usare l'immagine dell'agente MacOS con l'emulatore Android. Gli emulatori Android correnti richiedono l'accelerazione hardware per avviarsi. Gli agenti Ubuntu ospitati in Azure DevOps non supportano l'accelerazione hardware.
- task: Bash@3
inputs:
targetType: 'inline'
script: |
#!/usr/bin/env bash
# Install AVD files
echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install 'system-images;android-35;google_apis;x86_64'
# Create emulator
echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager create avd -n xamarin_android_emulator -d "Nexus 10" -k 'system-images;android-35;google_apis;x86_64' --force
echo "y" | $ANDROID_HOME/emulator/emulator -list-avds
echo "Starting emulator"
# Start emulator in background
nohup $ANDROID_HOME/emulator/emulator -avd xamarin_android_emulator -no-snapshot -no-window -no-audio -no-boot-anim -accel on > /dev/null 2>&1 &
# Fixed quoting around "\r"
$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d "\r") ]]; do sleep 1; done; input keyevent 82'
$ANDROID_HOME/platform-tools/adb devices
echo "Emulator started"
Per testare l'app in un lab ospitato di dispositivi Android in Visual Studio App Center, aggiungere l'attività Test di App Center alla pipeline.
Questa attività richiede un account di valutazione gratuito di App Center , che deve essere convertito in a pagamento dopo 30 giorni per continuare a usare il lab di test. Iscriversi per ottenere un account App Center prima di usare questa attività.
Avviso
Visual Studio App Center è pianificato per il ritiro il 31 marzo 2025. Altre informazioni sulle sequenze temporali di supporto e sulle alternative consigliate.
Iscriviti ad App Center prima.
L'esempio seguente esegue un gruppo di test di App Center. L'attività usa una connessione al servizio che è necessario configurare.
Per la sintassi completa delle attività e informazioni di riferimento, vedere Attività test di App Center. Per altre informazioni, vedere Uso di Azure DevOps per il test dell'interfaccia utente.
- task: AppCenterTest@1
inputs:
appFile: path/myapp.ipa
artifactsDirectory: '$(Build.ArtifactStagingDirectory)/AppCenterTest'
frameworkOption: 'appium'
appiumBuildDirectory: test/upload
serverEndpoint: 'My App Center service connection'
appSlug: username/appIdentifier
devices: 'devicelist'
Per archiviare il file APK con il record di compilazione o il test e distribuirlo nelle pipeline successive, aggiungere le attività Copia file e Pubblica artefatti di compilazione alla pipeline. Per altre informazioni, vedere Pubblicare e scaricare gli artefatti della pipeline.
- task: CopyFiles@2
inputs:
contents: '**/*.apk'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
Per distribuire un'app a un gruppo di tester o utenti beta o promuovere l'app in Intune o Google Play, aggiungere l'attività Distribuzione di App Center. L'attività richiede un account App Center gratuito che rimane gratuito.
L'esempio seguente distribuisce un'app agli utenti. Per informazioni di riferimento e sintassi completa delle attività, vedere App Center Distribute. Per altre informazioni, vedere Distribuire build di Azure DevOps con App Center.
- task: AppCenterDistribute@3
inputs:
serverEndpoint: 'AppCenter'
appSlug: '$(APP_CENTER_SLUG)'
appFile: '$(APP_FILE)' # Relative path from the repo root to the APK file you want to publish
symbolsOption: 'Android'
releaseNotesOption: 'input'
releaseNotesInput: 'Here are the release notes for this version.'
destinationType: 'groups'
Per automatizzare l'interazione con Google Play, installare l'estensione Google Play e quindi usare le attività seguenti. Per impostazione predefinita, queste attività eseguono l'autenticazione a Google Play usando una connessione al servizio che è necessario configurare.
Per rilasciare una nuova versione dell'app Android in Google Play Store, aggiungere l'attività Versione di Google Play alla pipeline.
- task: GooglePlayRelease@4
inputs:
apkFile: '**/*.apk'
serviceEndpoint: 'yourGooglePlayServiceConnectionName'
track: 'internal'
Per alzare di livello un aggiornamento dell'applicazione Android rilasciato in precedenza da una traccia a un'altra, ad esempio alpha
→ beta
, aggiungere l'attività Promuovere Google Play alla pipeline.
- task: GooglePlayPromote@3
inputs:
packageName: 'com.yourCompany.appPackageName'
serviceEndpoint: 'yourGooglePlayServiceConnectionName'
sourceTrack: 'internal'
destinationTrack: 'alpha'
Per aumentare la percentuale di implementazione di un'applicazione rilasciata in precedenza alla rollout
traccia, aggiungere l'attività Di aumento dell'implementazione di Google Play alla pipeline.
- task: GooglePlayIncreaseRollout@2
inputs:
packageName: 'com.yourCompany.appPackageName'
serviceEndpoint: 'yourGooglePlayServiceConnectionName'
userFraction: '0.5' # 0.0 to 1.0 (0% to 100%)
Per aggiornare lo stato di implementazione per un'applicazione rilasciata in precedenza alla rollout
traccia, aggiungere l'attività Google Play Status Update alla pipeline.
- task: GooglePlayStatusUpdate@2
inputs:
authType: ServiceEndpoint
packageName: 'com.yourCompany.appPackageName'
serviceEndpoint: 'yourGooglePlayServiceConnectionName'
status: 'inProgress' # draft | inProgress | halted | completed
È possibile compilare e firmare un bundle di app con uno script inline e un file sicuro.
Scaricare l'archivio chiavi e archiviarlo come file sicuro nella libreria di Azure Pipelines.
Creare variabili per keystore.password
, key.alias
e key.password
in un gruppo di variabili.
Nella pipeline YAML:
Aggiungere l'attività Scarica file sicuro per scaricare il file protetto app.keystore .
- task: DownloadSecureFile@1
name: keyStore
displayName: "Download keystore from secure files"
inputs:
secureFile: app.keystore
Usare l'attività Bash con uno script Bash per compilare e firmare il bundle dell'app.
- task: Bash@3
displayName: "Build and sign App Bundle"
inputs:
targetType: "inline"
script: |
msbuild -restore $(Build.SourcesDirectory)/myAndroidApp/*.csproj -t:SignAndroidPackage -p:AndroidPackageFormat=aab -p:Configuration=$(buildConfiguration) -p:AndroidKeyStore=True -p:AndroidSigningKeyStore=$(keyStore.secureFilePath) -p:AndroidSigningStorePass=$(keystore.password) -p:AndroidSigningKeyAlias=$(key.alias) -p:AndroidSigningKeyPass=$(key.password)
Usare l'attività Copia file per copiare il bundle dell'app.
- task: CopyFiles@2
displayName: 'Copy deliverables'
inputs:
SourceFolder: '$(Build.SourcesDirectory)/myAndroidApp/bin/$(buildConfiguration)'
Contents: '*.aab'
TargetFolder: 'drop'
Da qui è possibile creare e salvare un artefatto con l'attività Pubblica artefatto compilazione oppure usare l'estensione Google Play per pubblicare il bundle dell'app.
Eventi
Creare app e agenti di intelligenza artificiale
17 mar, 21 - 21 mar, 10
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoFormazione
Percorso di apprendimento
Compilare applicazioni tramite il percorso di apprendimento Azure DevOps - Training
In questo percorso di apprendimento verrà descritto come collaborare con altri utenti per compilare, testare e verificare le applicazioni usando Azure Pipelines e GitHub.
Certificazione
Microsoft Certified: Azure Developer Associate - Certifications
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.
Documentazione
AppCenterTest@1 - Attività test di App Center v1
Testare i pacchetti di app con Visual Studio App Center.
Compilare, testare e distribuire app Xcode - Azure Pipelines
Compilare automaticamente progetti Xcode con Azure Pipelines, Azure DevOps e Team Foundation Server
AppCenterDistribute@3 - Attività distribuzione v3 di App Center
Distribuire le compilazioni di app ai tester e agli utenti tramite Visual Studio App Center.