Betik oluşturma

Önemli

Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırılıyor. Tamamen kullanımdan kaldırılana kadar Visual Studio App Center'ı kullanmaya devam edebilirsiniz ancak geçiş yapmayı düşünebileceğiniz birkaç önerilen alternatif vardır.

Destek zaman çizelgeleri ve alternatifleri hakkında daha fazla bilgi edinin.

Not

Derleme betikleri, derlemelerinizi özelleştirmenize olanak sağlar; ancak bu işlem sırasında bulduğunuz sorunlar App Center desteğinin kapsamı dışındadır. Betiklerinizden biri başarısız olursa, bu noktaya kadar olan birincil derleme başarılı olsa bile derlemenin tamamı bir hata bildirir.

Derleme zamanında önceden tanımlanmış aşamalarda çalışan özel derleme betikleri ekleyebilirsiniz: kopyalama sonrası, derleme öncesi, derleme sonrası. Betikleri aşağıda belirtilen biçimde, derleme yapılandırmasında seçtiğiniz proje düzeyi (.xcodeproj, .csproj, .slnveya package.json) dosyasının veya modül düzeyi (build.gradle) dosyasının yanına yerleştirin; bunları özel derleme adımları olarak çalıştıracağız.

App Center'da UWP olmayan uygulamalar macOS üzerinde derlenir, böylece Bash betiklerini kullanabilirler. UWP uygulamaları, PowerShell betiklerini kullanabilmeleri için Windows üzerinde derlenir. Benzer görevlerin çoğu betik biçiminde de gerçekleştirilebilir, ancak bunlar arasında geçiş yapıyorsanız bazı dönüştürmeler yapmanız gerekebilir. Örneğin, macOS Bash unix stili satır sonlarının (LF) kullanılmasını gerektirir.

Derleme betiği örneklerinin bir koleksiyonunu ayrılmış genel GitHub deposunda bulabilirsiniz. Topluluğun geri kalanı için örnek betikleri kullanabilir, değiştirebilir veya en kullanışlı betiklerinizle yeni çekme istekleri gönderebilirsiniz.

Uyarı

App Center derleme betiklerini ilk kez algıladığında veya betiklerin konumunu değiştirdiğinizde veya CocoaPods'un depolandığı yeri değiştirdiğinizde; Derleme yapılandırmasında & Kaydet veya Kaydet düğmesine tıklayarak değişiklikleri uygulamanız gerekir. Bunu yaptığınızda App Center, depo ağacınızın dizinini oluşturmak için bir analiz çalıştırır ve derleme tanımını güncelleştirir.

Algılanan betikleri kaydetme

Kopya sonrası

Kopya sonrası betiği, depo kopyalandıktan hemen sonra ancak bizim tarafımızda başka bir şey yapmadan önce çalışır.

Kopyalama sonrası betikleri çalıştırmak için deponuzdaki proje dosyasının yanına aşağıdaki dosyayı ekleyin:

  • appcenter-post-clone.sh (Android & iOS için Bash)

    #!/usr/bin/env bash
    
    # Example: Clone a required repository
    git clone https://github.com/example/SomeProject
    
    # Example: Install App Center CLI
    npm install -g appcenter-cli
    
  • appcenter-post-clone.ps1 (UWP için PowerShell)

Derleme öncesi

Derleme öncesi betik, gerçek derleme başlamadan önce çalıştırılır. React Native uygulamalar için betik, kaynak eşlemeleri oluşturmadan önce çalışır. Diğer platformlar için bağımlılıkları yükledikten sonra (örneğin NuGet, CocoaPods veya Carthage) çalışır.

Betikleri önceden derlemeden çalıştırmak için deponuzdaki proje dosyasının yanına aşağıdaki dosyayı ekleyin:

  • appcenter-pre-build.sh (iOS & Android için Bash)

    #!/usr/bin/env bash
    
    # Example: Change bundle name of an iOS app for non-production
    if [ "$APPCENTER_BRANCH" != "main" ];
    then
        plutil -replace CFBundleDisplayName -string "\$(PRODUCT_NAME) Beta" $APPCENTER_SOURCE_DIRECTORY/MyApp/Info.plist
    fi
    
  • appcenter-pre-build.ps1 (UWP için PowerShell)

Derleme sonrası

Derleme sonrası betiği, derleme tamamlandıktan ve gerekli tüm yapıtları çıkış dizinine kopyaladıktan sonra çalışır. Derleme başarısız olsa bile derleme sonrası betiği çalıştırılır.

Derleme sonrası betikleri çalıştırmak için depodaki proje dosyasının yanına aşağıdaki dosyayı ekleyin:

  • appcenter-post-build.sh (iOS & Android için Bash)

    if [ "$AGENT_JOBSTATUS" == "Succeeded" ]; then
        HOCKEYAPP_API_TOKEN={API_Token}
        HOCKEYAPP_APP_ID={APP_ID}
    
        # Example: Upload main branch app binary to HockeyApp using the API
        if [ "$APPCENTER_BRANCH" == "main" ];
         then
            curl \
            -F "status=2" \
            -F "ipa=@$APPCENTER_OUTPUT_DIRECTORY/MyApps.ipa" \
            -H "X-HockeyAppToken: $HOCKEYAPP_API_TOKEN" \
            https://rink.hockeyapp.net/api/2/apps/$HOCKEYAPP_APP_ID/app_versions/upload
        else
            echo "Current branch is $APPCENTER_BRANCH"
        fi
    fi
    
  • appcenter-post-build.ps1 (UWP için PowerShell)

Ortam Değişkenleri

Derleme betiklerinizi yazmanıza yardımcı olması için önceden tanımlanmış, özel veya betik içi ortam değişkenlerini kullanabilirsiniz. Daha fazla bilgi için Ortam Değişkenleri kılavuzumuza bakın.