Derlemeyi Serbest Bırakma

Upload dağıtmak için uygulama ikili App Center paketinizi dağıtabilirsiniz. App Center Android, iOS, macOS, Windows ve özel işletim sistemi uygulamaları için paket dağıtımını destekler. Yayınları tek tek testçilere veya testçi gruplarına dağıtarak. iOS ve Android uygulamaları için Google Play, App Store ve Intune gibi mağazaları da yayımabilirsiniz. Bkz. Tüketici ve kuruluş mağazalarında yayımlama.

Bu sayfada, yayın için ikili dosya oluşturma ve portalı, komut satırı arabirimini (CLI) ve uygulama programlama arabirimini (API) kullanarak gruplara yükleme ve serbest bırakma hakkında bilgi edinebilirsiniz.

Azure DevOps veya Jenkins'i de kullanabilirsiniz:

Uygulama ikili paketi oluşturma

İlk olarak, yayın için uygulamalarınızı bir ikili dosyada paketleniz. Bu dosyayı el ile oluşturabilir veya Derleme App Center kullanabilirsiniz. Derlemeyi, bir dalnın derleme yapılandırmasında otomatik olarak dağıtacak şekilde yapılandırabilirsiniz.

Aşağıdaki bölümlerde, dağıtım için desteklene tüm uygulama türleri için App Center nasıl oluşturulacak açıklanmaktadır.

Not

Arşivi (.zip, .ipa ve diğerleri) karşıya yükleyebilirsiniz. Bu nedenle, uygulamanın toplam sıkıştırılmamış boyutu 4 GB'ın altında olacaktır.

Android

Android için, imzalı bir uygulama paketi veya APK dosyası üretmelisiniz. Bu sürecin tüm ayrıntıları için, bir uygulamayı sürümüne hazırlamaya ilişkin resmi Google belgelerine bakın.

  1. Bildirimi güncelleştirilmiş ve doğru yapılandırılmış bir Gradle derlemesi olduğundan emin olun.
  2. Bu Android Studio İmzalı Paket Oluştur / APK'yi seçin ve uygulama paketi veya APK oluşturmak için > sihirbazda yer alan adımları izleyin.

Android Studio uygulama paketlerini proje-adı / modül-adı/build/outputs/bundle/ ve APK'ları proje-adı / modül-adı/build/outputs/apk/ içinde yer almaktadır.

Not

Android Uygulama Paketi (AAB) dağıtıyorsanız, App Center APK'sini üretir, oluşturulan bir imzalama anahtarıyla imzalar ve bir cihaza dağıtır.

iOS

iOS için, uygulamanıza bir IPA paketi üretmeniz gerekir. Bu sürecin tüm ayrıntıları için resmi Apple belgelerine bakın.

  1. Sağlama profilinizde tüm donanım cihazları için UDID'leri kaydetme.
  2. Xcode'da Ürün Arşivi'ne > gidip uygulamanızı arşivleyin.
  3. Uygun sağlama profilini kullanarak arşivi dışarı aktarın.

Mac OS

macOS için bir uygulama paketi üretmeniz gerekir. App Center .app.zip, .pkg veya .dmg türünde uygulama paketlerini serbest bırakmayı destekler. Bu sürecin tüm ayrıntıları için resmi Apple macOS belgelerine bakın.

  1. Apple geliştirici hesabınıza tek bir cihaz kaydetme veya birden çok cihaz kaydetme.
  2. Xcode'da Ürün Arşivi'ne > gidip uygulamanızı arşivleyin.
  3. Uygun sağlama profilini kullanarak arşivi dışarı aktarın.

Windows

App Center , , Windows , , , , veya türünde uygulama .appx .appxbundle .appxupload .msi .msix paketlerinin .msixbundle serbest .msixupload bırakılmasını .zip destekler. AppX veya MSIX biçimlerinde uygulamalarınızı paketleme hakkında ayrıntılı bilgi için resmi Microsoft UWP belgelerine bakın.

Özel işletim sistemi

Derlemenizi özel bir işletim sistemine sahip uygulamalar için .zip arşivler.

Paketi dağıtma

Bir paketi App Center dağıtmak için App Center'agidin, uygulamanıza gidin, Grupları Dağıt'a gidin ve Yeni > yayın'ı seçin. Sihirbazdaki adımları izleyin. Yeni bir sürümü dağıtma

İlk adımda, karşıya yüklemek istediğiniz dosyaya göz atmak için Yayın alanı'ı seçin veya dosyayı sürükleyip alana bırakın. Uygulamanın işletim sistemine ve dosya uzantısına bağlı olarak, App Center sürümünüz için bir sürüm ve derleme numarası girmenizi isteyebilirsiniz. Bilgileri girin ve Sonraki'yi seçin.

Sürüm notlarını sürümün bir parçası olarak hem düz metin hem de Markdown biçiminde ekleyebilirsiniz. İleri’yi seçin.

Yayınını birden çok dağıtım grubu veya testçide hedefleysiniz. App Center, bu sürümü seçilen grupların parçası olan testçiler ve kullanıcılar için kullanılabilir yapar. İleri’yi seçin.

Yayın hedeflerini ayarlama

Bir iOS uygulamasını serbest bırakarak testçinizin cihazlarını otomatik olarak sebilirsiniz. İleri’yi seçin.

Sürümü gözden geçirme. Uygulamanız SDK'yı Dağıt'ıkullanıyorsa, sürümü zorunlu App Center için sdk'yı yapılandırabilirsiniz. Bir App Center dağıtıyorsanız, hedeflerde ayarlanmış tüm testçilere yeni sürümün e-posta bildirimini gönderir. gözden geçirme sekmesinde testçilere bildirmeyebilirsiniz. Son olarak, dosyayı testçilerinize serbest bırakmak için Dağıt'ı seçin.

Komut satırı App Center kullanarak dağıtma

Uyarı

Bu özelliği App Center CLI 2.7 veya daha yeni bir sürüme sahip olmak gerekir.

appcenter distribute releaseApp Center CLI'de komutunu kullanarak sürümü App Center dağıtabilirsiniz. Aşağıdaki örnek komut, adlı dosyayı ~/releases/my_app-23.ipa sahip olduğu uygulama grubuna Beta testers My-App David dağıtır.

appcenter distribute release --app David/My-App --file ~/releases/my_app-23.ipa --group "Beta testers"

API kullanarak dağıtma

Yayın dağıtmak için App Center API'sini çağırabilirsiniz. Aşağıdaki yaklaşım minimum çalışma yaklaşımını açıklamaya yöneliktir; görevlerin çoğu daha fazla özelleştirilebilir veya otomatikleştirilebilir.

Örnek bir uygulama burada görülebilir: https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/blob/main/ac-distribute.sh

Önkoşullar

  • Karşıya yüklemek ve dağıtmak için Uygulama paketi.
  • BIR API belirteci alın. Api Belirteci, tüm API çağrılarını App Center için kullanılır.
  • Dağıtım Grubu Adı (isteğe bağlı, eksik veya geçersizse karşıya yükleme yine tamamlanır)
  • Bir {owner_name} sürümü {app_name} dağıtmak istediğiniz uygulamanın ve kimliklerini belirleme. Bu tanımlayıcılar API çağrılarında URL'de kullanılır. Bir kullanıcıya ait olan bir uygulama için, App Center URL şöyle olabilir: https://appcenter.ms/users/Example-User/apps/Example-App . Burada , {owner_name} ve Example-User {app_name} Example-App olur. Bir kuruluşa ait olan bir uygulamanın URL'si olabilir https://appcenter.ms/orgs/Example-Org/apps/Example-App ve {owner_name} Example-Org olabilir.
Upload Yeni Sürüm

Upload API çağrılarını kullanarak yeni bir yayın yayımla:

  1. Karşıya yükleme kaynağı oluşturma ve (24 saat için iyi): Çağrılma uç noktası upload_url POST /v0.1/apps/{owner_name}/{app_name}/uploads/releases şeklindedir

        OWNER_NAME="Example-Org"
        APP_NAME="Example-App"
        API_TOKEN="Example-Token"
    
        curl -X POST "https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/uploads/releases" -H  "accept: application/json" -H  "X-API-Token: $API_TOKEN" -H  "Content-Type: application/json"
    

    Sonuç, her kullanım için benzersiz olan {VARIABLE_NAME} verileri değiştirerek aşağıdakine benzer:

         {
             "id": "{ID}",
             "package_asset_id": "{PACKAGE_ASSET_ID}",
             "upload_domain": "https://file.appcenter.ms",
             "token": "{TOKEN}",
             "url_encoded_token": "{URL_ENCODED_TOKEN}"
         }
    
  2. Önceki adımda verilen yanıttan parametreleri kopyalayın, bunların çoğu , dahil olmak üzere bir sonraki adımda package_asset_id upload_domain & url_encoded_token kullanılır.

    Uygulama paketinizin boyutunu bayt cinsinden belirler. Doğru bir bayt sayısı almak için gibi wc -c ExampleApp.ipa bir komut kullanılması önerilir.

    için, MIME Type content_type uygulamanıza göre ayarlayın:

    • Android satıcı türünü kullanır application/vnd.android.package-archive
    • iOS genel türünü kullanır application/octet-stream

    Son komut aşağıdakine benzer şekilde olmalı:

    FILE_NAME="ExampleApp.apk"
    FILE_SIZE_BYTES=$(wc -c $RELEASE_FILE_LOCATION | awk '{print $1}')
    APP_TYPE='application/vnd.android.package-archive' # iOS uses `application/octet-stream` instead.
    
    METADATA_URL="https://file.appcenter.ms/upload/set_metadata/$PACKAGE_ASSET_ID?file_name=$FILE_NAME&file_size=$FILE_SIZE_BYTES&token=$URL_ENCODED_TOKEN&content_type=$APP_TYPE"
    
     curl -s -d POST -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" "$METADATA_URL"
    

    Döndürülen çıktı şuna benzer şekilde görünüyor:

     {
         "error":false,
         "id":"{UPLOAD_ID}",
         "chunk_size":4194304,
         "resume_restart":false,
         "chunk_list":[1,2,3,4,5],
         "blob_partitions":1,
         "status_code":"Success"
     }
    
  3. chunk_sizeÖzelleştirilene değeri kullanarak, dağıt'a yüklemek için uygulama karşıya yüklemenizi sıralı öbeklere bölebilirsiniz. Örneğin, yardımcı programını split şu şekilde kullanabilirsiniz:

    split -b $CHUNK_SIZE $RELEASE_FILE_LOCATION temp/split
    

    Bu komut , ve gibi adlı temp dizinde splitaa sıralı dosyalar splitab üretir. Her dosya sınır içinde chunk_size bölünüyor.

  4. Ardından, bölünmüş uygulama paketinin her bir öbbeklerini ilgili blokla karşıya yükleyebilirsiniz:

    BLOCK_NUMBER=0
    
    for i in temp/*
    do
        BLOCK_NUMBER=$(($BLOCK_NUMBER + 1))
        CONTENT_LENGTH=$(wc -c "$i" | awk '{print $1}')
    
        UPLOAD_CHUNK_URL="https://file.appcenter.ms/upload/upload_chunk/$PACKAGE_ASSET_ID?token=$URL_ENCODED_TOKEN&block_number=$BLOCK_NUMBER"
    
        curl -X POST $UPLOAD_CHUNK_URL --data-binary "@$i" -H "Content-Length: $CONTENT_LENGTH" -H "Content-Type: $CONTENT_TYPE"
    done
    
  5. Karşıya yükleme işlemi tamam olduktan sonra, karşıya yükleme kaynağının durumunu olarak uploadFinished güncelleştirin.

    FINISHED_URL="https://file.appcenter.ms/upload/finished/$PACKAGE_ASSET_ID?token=$URL_ENCODED_TOKEN"
    curl -d POST -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" "$FINISHED_URL"
    
    COMMIT_URL="https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/uploads/releases/$UPLOAD_ID"
    curl -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" \
    --data '{"upload_status": "uploadFinished","id": "$UPLOAD_ID"}' \
    -X PATCH \
    $COMMIT_URL
    
  6. Karşıya yüklendiktan sonra, karşıya yükleme tamamlandı olarak işaretlenirken kısa bir gecikme olur. Sonraki adıma ulaşmak için bu durum için yoklama yapın $RELEASE_ID :

    RELEASE_STATUS_URL="https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/uploads/releases/$UPLOAD_ID"
    POLL_RESULT=$(curl -s -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" $RELEASE_STATUS_URL)
    RELEASE_ID=$(echo $POLL_RESULT | jq -r '.release_distinct_id')
    
    if [[ $RELEASE_ID == null ]];
    then
       echo "Failed to find release from appcenter"
       exit 1
    fi
    
  7. Son olarak, derlemeyi yayınlayın. Çağrılacak uç nokta /v0.1/Apps/{owner_name}/{app_name}/releases/{release_id}

    DISTRIBUTE_URL="https://api.appcenter.ms/v0.1/apps/$OWNER_NAME/$APP_NAME/releases/$RELEASE_ID"
    
    curl -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" \
    --data '{"destinations": [{ "name": "'"$DISTRIBUTION_GROUP"'"}] }' \    
    -X PATCH \
    $DISTRIBUTE_URL
    
Yayını dağıt

App Center portalında sürümü görmek için, yüklenen sürümü sınayıcılara, gruplara veya depolarına dağıtın. Üç uç nokta şunlardır:

Gruplar için bir örnek:

    curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" -d "{ \"id\": "$DISTRIBUTION_GROUP_ID", \"mandatory_update\": false, \"notify_testers\": false}" 

Dağıtım grubu KIMLIĞINI bu grubun ayarlar sayfasında bulabilirsiniz.

Daha karmaşık senaryolar için birden çok hedefe dağıtım isteğine şu şekilde başvuruluyor: Patch/v0.1/Apps/{owner_name}/{app_name}/releases/{release_id}

Bir derlemeyi Re-Release

Bir derlemeyi başka bir dağıtım grubuna serbest bırakmak için App Center herhangi bir konumdan > sürümlerini dağıtın ve ardından yeniden dağıtmak istediğiniz yayını seçin. Sürüm ayrıntıları sayfası açılır. Ekranın sağ üst köşesindeki Dağıt düğmesini seçin ve yeniden yayınlama işlemini başlatmak için hedefi seçin. Sihirbazdaki adımları izleyin ve son olarak, yayını gruplar/Sınayıcılar veya mağazaya göndermek için Dağıt ' ı seçin.

Zorunlu güncelleştirmeler

Tüm kullanıcıları uygulamanızın aynı sürümünü çalıştırmaya zorlamak için bir yayın zorunlu hale getirin. Bunu yaptığınızda, App Center seçili güncelleştirmeyi tüm test eden cihazlara yükleyecek.

Yalnızca uygulamanız App Center dağıtım SDK 'sını kullanıyorsa, bir yayın zorunlu hale getirebilirsiniz. Bir yayın dağıtmaya yönelik gözden geçirme aşamasında zorunlu güncelleştirme onay kutusunu seçerek bir yayın zorunlu hale getirin veya API 'yi kullanabilirsiniz.

> grupları > sürümlerini dağıtmak > [uygulamanızı] açarak App Center zorunlu yayınları görüntüleyebilirsiniz. Zorunlu yayınlar kırmızı bir noktayla belirtilir.

Başarıyla yayımlandıktan sonra, test ediciler yayına e-posta yoluyla erişebilir, App Center oturum açabilir veya doğrudan bir bağlantı aracılığıyla erişebilir.

Özel hedefler için sürüm sayfasında belirli yayınların bağlantılarını bulabilirsiniz. Yükle düğmesi

Not

Android uygulama demeti (AAB), sürüm sayfasında indir düğmesine tıklayarak indirilebilir. Yüklenebilir bir APK dosya biçimine ihtiyacınız varsa, lütfen Install Portal 'ı (cihazınızda) kullanın https://install.appcenter.ms) . Bağlantıyı, oluşturulan QR kodunun altında indir düğmesinin yanında bulabilirsiniz.

Genel hedeflere yönelik belirli yayınların bağlantılarını, ortak gruplardaki yayınlar sekmesinde bulabilirsiniz. Genel ayrıntılı bağlantı