Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services
Bu hızlı başlangıçta, Bir Android uygulamasını otomatik olarak derlemek, test etmek ve dağıtmak için Azure Pipelines'da YAML işlem hattının nasıl ayarlanacağı gösterilmektedir.
Önkoşullar
İşlem hatları oluşturma ve uygulama dağıtma izninizin olduğu bir Azure DevOps kuruluşu ve projesi. Proje oluşturmak için bkz . Azure DevOps'ta proje oluşturma.
Bir GitHub hesabı.
Önemli
GitHub yordamları sırasında oturum açmak, Azure Pipelines'ı yüklemek, Azure Pipelines'ı yetkilendirmek veya GitHub kuruluşlarına kimlik doğrulaması yapmak için GitHub hizmet bağlantısı oluşturmanız veya GitHub'a yönlendirilmeniz istenebilir. İşlemi tamamlamak için ekrandaki yönergeleri izleyin. Daha fazla bilgi için bkz . GitHub depolarına erişim.
İşlem hattını oluştur ve çalıştır
Basit bir Android uygulaması için işlem hattı ayarlamak için aşağıdaki görevleri gerçekleştirin.
- Örnek uygulamanın kodunu almak için Android örnek uygulama deposunu GitHub hesabınıza çatallayın.
- Azure DevOps projenizde, İşlem Hatları, >Yeni işlem hattı veya bu projedeki ilk işlem hattı ise İşlem hattı oluştur'u seçin.
- Kaynak kodunuzun konumu olarak GitHub'ı seçin.
- Depo Seç ekranında, çatalladığınız Android örnek deponuzu seçin.
- İşlem hattınızı yapılandırın ekranında Android'i seçin.
- Azure Pipelines, Android şablonunu temel alan bir başlangıç işlem hattı sağlar. İşlem hattı kodunu gözden geçirin.
- Kaydet ve çalıştır'ı seçin.
- İsteğe bağlı olarak, İşleme iletisini düzenleyin ve bir açıklama sağlayın. Ardından Kaydet'i seçip yeniden çalıştırarak azure-pipelines.yml dosyasını deponuza işleyip bir derleme başlatın.
Derleme çalıştırma sayfası, derleme ayrıntılarını ve ilerlemeyi gösterir. İşlem hattınızı çalışırken izlemek istiyorsanız sayfanın alt kısmında bulunan Görev'i seçin.
Artık deponuzda özelleştirmeye hazır çalışan bir Android YAML işlem hattınız azure-pipelines.yml.
İşlem hattınızı özelleştirme
İşlem hattınızda değişiklik yapmak için işlem hattı sayfasında Düzenle'yi seçin. Aşağıdaki bölümlerde, Android işlem hattınızı özelleştirmenin bazı yaygın yolları açıklanmaktadır.
Gradle'ı yapılandırma
Başlangıç YAML işlem hattı, Android projeleri için yaygın bir açık kaynak derleme aracı olan Gradle'ı kullanır. Daha fazla bilgi için bkz . Gradle görevi.
Örnek görevde tasks
parametresi assembleDebug
derleme türünü oluşturur. İstediğiniz derleme varyantlarının, build
, test
ve assembleRelease
gibi, tasks
değerini ayarlayabilirsiniz.
Örnek görev, dosyanızın gradlew
deponun kökünde olduğunu da varsayar. Eğer ayarlanmadıysa workingDirectory
ve gradleWrapperFile
değerlerini buna göre ayarlayın.
workingDirectory
deponun köküne benzer olmalı, örneğin AndroidApps/MyApp
veya $(system.defaultWorkingDirectory)/AndroidApps/MyApp
gibi. YolgradleWrapperFile
, veya AndroidApps/MyApp/gradlew
gibi $(system.defaultWorkingDirectory)/AndroidApps/MyApp/gradlew
deponun köküne benzer olmalıdır.
- task: Gradle@3
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
publishJUnitResults: false
testResultsFiles: '**/TEST-*.xml'
tasks: 'assembleDebug'
Gradle görevlerini kullanma hakkında daha fazla bilgi için Gradle belgelerindeki Görevleri kullanma bölümüne bakın. Derleme görevleri hakkında daha fazla bilgi için Google Android geliştirme belgelerindeki Hata ayıklama APK'sı oluşturma ve Derleme değişkenlerini yapılandırma konularına bakın.
Android paketini (APK) imzalama ve hizalama
Emülatör yerine bir cihazda çalıştırmak için Android Uygulama Paketi (APK) imzalanmalıdır. Zipaligning, uygulamanın tükettiği RAM'i azaltır. Derlemeniz APK'yı henüz imzalamaz ve hizalamazsaAndroid İmzalama görevini işlem hattına ekleyin. Daha fazla bilgi için Mobil uygulama imzalama bölümüne bakın.
Güvenlik için, jarsignerKeystorePassword
ve jarsignerKeyPassword
öğelerini gizli değişkenler içinde depolayın ve bu değişkenleri işlem hattınızda kullanın.
- task: AndroidSigning@2
inputs:
apkFiles: '**/*.apk'
jarsign: true
jarsignerKeystoreFile: 'pathToYourKeystoreFile'
jarsignerKeystorePassword: '$(jarsignerKeystorePassword)'
jarsignerKeystoreAlias: 'yourKeystoreAlias'
jarsignerKeyPassword: '$(jarsignerKeyPassword)'
zipalign: true
Android öykünücüde test edin
Android öykünücüsünüzü yüklemek ve çalıştırmak için Bash görevini işlem hattınıza ekleyin ve aşağıdaki kodu yapıştırın. Öykünücü arka planda bir işlem olarak başlar ve sonraki görevler için kullanılabilir. Öykünücü parametrelerini test ortamınıza uyacak şekilde düzenleyin.
Önemli
Microsoft tarafından barındırılan aracıkullanıyorsanız, Android öykünücüsü ile MacOS aracı görüntüsünü kullanın. Geçerli Android öykünücülerinin başlatılması için donanım hızlandırma gerekir. Azure DevOps barındırılan Ubuntu aracıları donanım hızlandırmayı desteklemez.
- 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"
Azure tarafından barındırılan cihazlarda test edin
Uygulamanızı Visual Studio App Center'daki barındırılan bir Android cihaz laboratuvarında test etmek için işlem hattınıza App Center Test görevini ekleyin.
Bu görev, test laboratuvarını kullanmaya devam etmek için 30 gün sonra ücretliye dönüştürülmesi gereken bir App Center ücretsiz deneme hesabı gerektirir. Bu görevi kullanmadan önce bir App Center hesabına kaydolun.
Uyarı
Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırılıyor. Destek zaman çizelgeleri ve önerilen alternatifler hakkında daha fazla bilgi edinin.
İlk olarak App Center'a kaydolun.
Aşağıdaki örnekte bir App Center test paketi çalıştırılır. Görev, ayarlamanız gereken bir hizmet bağlantısı kullanır.
Tam görev söz dizimi ve başvurusu için App Center Test görevi'ne bakın. Daha fazla bilgi için bkz UI Testi için Azure DevOps Kullanma.
- 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'
Yapı çıktıları ile derleme kaydını sakla
APK dosyanızı derleme kaydıyla depolamak veya test etmek ve sonraki işlem hatlarında dağıtmak için Dosyaları Kopyalama ve Derleme Yapıtlarını Yayımlama görevlerini işlem hattınıza ekleyin. Daha fazla bilgi için bkz İşlem hattı yapıtlarını yayımlama ve indirme.
- task: CopyFiles@2
inputs:
contents: '**/*.apk'
targetFolder: '$(build.artifactStagingDirectory)'
- task: PublishBuildArtifacts@1
inputs:
pathToPublish: $(Build.ArtifactStagingDirectory)
artifactName: MyBuildOutputs
App Center'a dağıtım
Bir uygulamayı test eden veya beta kullanıcı grubuna dağıtmak veya uygulamayı Intune veya Google Play'e yükseltmek için App Center Distribute görevini ekleyin. Görev, her zaman ücretsiz kalan bir App Center hesabı gerektirir.
Aşağıdaki örnek bir uygulamayı kullanıcılara dağıtır. Tam görev söz dizimi ve referans için bkz. App Center Distribute. Daha fazla bilgi için bkz . App Center ile Azure DevOps Derlemelerini Dağıtma.
- 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'
Google Play uzantısını yükleme ve Google Play'e dağıtma
Google Play ile etkileşimi otomatikleştirmek için Google Play uzantısını yükleyin ve aşağıdaki görevleri kullanın. Varsayılan olarak, bu görevler yapılandırmanız gereken bir hizmet bağlantısını kullanarak Google Play'de kimlik doğrulaması yapar.
Sürüm
Google Play mağazasına yeni bir Android uygulaması sürümü yayınlamak için google play yayın görevini işlem hattınıza ekleyin.
- task: GooglePlayRelease@4
inputs:
apkFile: '**/*.apk'
serviceEndpoint: 'yourGooglePlayServiceConnectionName'
track: 'internal'
Yükselt
Daha önce yayımlanmış bir Android uygulama güncellemesini alpha
→ beta
gibi bir kanaldan diğerine taşımak için, hattınıza Google Play Promote görevini ekleyin.
- task: GooglePlayPromote@3
inputs:
packageName: 'com.yourCompany.appPackageName'
serviceEndpoint: 'yourGooglePlayServiceConnectionName'
sourceTrack: 'internal'
destinationTrack: 'alpha'
Dağıtımı artırın
Daha önce rollout
parçada yayımlanan bir uygulamanın dağıtım yüzdesini artırmak için Google Play Dağıtımı Artırma görevini işlem hattınıza ekleyin.
- task: GooglePlayIncreaseRollout@2
inputs:
packageName: 'com.yourCompany.appPackageName'
serviceEndpoint: 'yourGooglePlayServiceConnectionName'
userFraction: '0.5' # 0.0 to 1.0 (0% to 100%)
Durumu güncelleştir
Daha önce rollout
parçasına yayımlanmış bir uygulamanın dağıtım durumunu güncellemek için Google Play Durum Güncelleme görevini işlem hattınıza ekleyin.
- task: GooglePlayStatusUpdate@2
inputs:
authType: ServiceEndpoint
packageName: 'com.yourCompany.appPackageName'
serviceEndpoint: 'yourGooglePlayServiceConnectionName'
status: 'inProgress' # draft | inProgress | halted | completed
Uygulama paketi oluşturma
Satır içi bir betik ve güvenli bir dosya ile bir uygulama paketi oluşturabilir ve imzalayabilirsiniz.
Anahtar deponuzu indirin ve Azure Pipelines kitaplığında güvenli bir dosya olarak depolayın.
keystore.password
,key.alias
vekey.password
için bir değişken grubu oluşturun.
YAML işlem hattınızda:
App.keystore güvenli dosyasını indirmek için Güvenli Dosya İndir görevini ekleyin.
- task: DownloadSecureFile@1 name: keyStore displayName: "Download keystore from secure files" inputs: secureFile: app.keystore
Bash betiğiyle uygulama paketini derlemek ve imzalamak için Bash görevini kullanın.
- 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)
Uygulama paketini kopyalamak için Dosyaları Kopyala görevini kullanın.
- task: CopyFiles@2 displayName: 'Copy deliverables' inputs: SourceFolder: '$(Build.SourcesDirectory)/myAndroidApp/bin/$(buildConfiguration)' Contents: '*.aab' TargetFolder: 'drop'
Buradan Derleme Yapıtı Yayımla göreviyle bir yapıt oluşturup kaydedebilir veya Google Play uzantısını kullanarak uygulama paketini yayımlayabilirsiniz.
İlgili uzantılar
- Codified Security tarafından Codified Security
- Microsoft'tan Google Play
- James Montemagno'dan iOS ve Android için Mobil Uygulama Görevleri
- Perfecto Mobile'dan Mobil Test Laboratuvarı
- Microsoft'tan React Native