Bagikan melalui


Merilis Build

Penting

Visual Studio App Center dijadwalkan untuk dihentikan pada 31 Maret 2025. Meskipun Anda dapat terus menggunakan Visual Studio App Center hingga sepenuhnya dihentikan, ada beberapa alternatif yang direkomendasikan yang dapat Anda pertimbangkan untuk bermigrasi.

Pelajari selengkapnya tentang garis waktu dukungan dan alternatif.

Unggah paket biner aplikasi Anda ke App Center untuk mendistribusikannya. App Center mendukung distribusi paket untuk aplikasi Android, iOS, macOS, Windows, dan sistem operasi kustom. Anda dapat mendistribusikan rilis ke penguji individu atau grup penguji. Untuk aplikasi iOS dan Android, Anda juga dapat merilis ke toko seperti Google Play, App Store, dan Intune. Lihat Menerbitkan ke toko konsumen dan perusahaan.

Di halaman ini Anda dapat mempelajari cara membuat biner untuk rilis, dan cara mengunggah dan merilisnya ke grup menggunakan portal, antarmuka baris perintah (CLI), dan antarmuka pemrograman aplikasi (API).

Anda juga dapat menggunakan Azure DevOps atau Jenkins:

Membuat paket biner aplikasi

Pertama, Anda harus mengemas aplikasi Anda ke dalam file biner untuk rilis. Anda dapat membuat file ini secara manual, atau menggunakan App Center Build. Anda dapat mengonfigurasi Build untuk didistribusikan secara otomatis dalam konfigurasi build cabang.

Bagian berikut menjelaskan cara membuat file untuk semua jenis aplikasi yang didukung App Center untuk distribusi.

Catatan

Jika Anda akan mengunggah arsip (.zip, .ipa, dan lainnya) maka ukuran total aplikasi Anda yang tidak dikompresi harus kurang dari 4GB.

Android

Untuk Android, Anda harus membuat app bundle atau file APK yang ditandatangani. Untuk detail lengkap proses ini, lihat dokumentasi resmi Google tentang menyiapkan aplikasi untuk rilis.

  1. Pastikan Anda telah memperbarui manifes dan memiliki build Gradle yang dikonfigurasi dengan benar.
  2. Di Android Studio, pilih Buat>Buat Bundel / APK yang Ditandatangani dan ikuti langkah-langkah dalam wizard untuk membuat app bundle atau APK.

Android Studio menempatkan bundel aplikasi bawaan dalam module-name//build/outputs/bundle/ dan APK project-name/module-name/build/outputs/apk/.

Catatan

Saat Anda mendistribusikan Android Application Bundle (AAB), App Center menghasilkan APK universal, menandatanganinya dengan kunci penandatanganan yang dihasilkan, dan mendistribusikannya ke perangkat.

iOS

Untuk iOS, Anda harus menghasilkan paket IPA untuk aplikasi Anda. Untuk detail lengkap proses ini, lihat dokumentasi resmi Apple.

  1. Daftarkan UDID untuk semua perangkat keras di profil provisi Anda.
  2. Di Xcode, bukaArsipProduk> untuk mengarsipkan aplikasi Anda.
  3. Ekspor arsip menggunakan profil provisi yang tepat.

macOS

Untuk macOS, Anda harus membuat paket aplikasi. App Center mendukung merilis paket aplikasi jenis .app.zip, .pkg, atau .dmg. Untuk detail lengkap proses ini, lihat dokumentasi resmi Apple macOS.

  1. Daftarkan satu perangkat atau daftarkan beberapa perangkat di akun pengembang Apple Anda.
  2. Di Xcode, bukaArsipProduk> untuk mengarsipkan aplikasi Anda.
  3. Ekspor arsip menggunakan profil provisi yang tepat.

Windows

App Center mendukung merilis paket aplikasi Windows jenis .appx, , .appxbundle, .appxupload, .msix.msi, , .msixbundle, .msixupload, atau .zip. Untuk detail selengkapnya tentang cara mengemas aplikasi Anda dalam format AppX atau MSIX, lihat dokumentasi resmi Microsoft UWP.

Sistem operasi kustom

Arsipkan build Anda untuk aplikasi dengan sistem operasi kustom dalam format .zip.

Mendistribusikan paket

Catatan

Semua URL install.appcenter.ms yang berisi file untuk diunduh dapat diakses publik.

Untuk mendistribusikan paket dengan App Center, buka App Center, buka aplikasi Anda, lalu buka Distribusikan> Grup dan pilih Rilis baru. Ikuti langkah-langkah di blok berikutnya. Mendistribusikan rilis baru

Pada langkah pertama, pilih area Rilis untuk menelusuri file yang ingin Anda unggah, atau seret dan letakkan file ke area tersebut. Bergantung pada sistem operasi aplikasi dan ekstensi file, App Center mungkin meminta Anda untuk memasukkan versi dan nomor build untuk rilis Anda. Masukkan informasi dan pilih Berikutnya.

Anda dapat menyertakan catatan rilis sebagai bagian dari rilis Anda, baik dalam format teks biasa atau Markdown. Pilih Berikutnya.

Anda dapat menargetkan rilis Anda di beberapa grup distribusi atau penguji. App Center membuat rilis ini tersedia untuk penguji tersebut dan pengguna yang merupakan bagian dari grup yang dipilih. Pilih Berikutnya.

Mengatur tujuan rilis

Saat merilis aplikasi iOS, Anda dapat memprovisikan perangkat penguji secara otomatis. Pilih Berikutnya.

Tinjau rilis. Jika aplikasi Anda menggunakan Distribute SDK, maka Anda dapat mengonfigurasi App Center untuk membuat rilis menjadi wajib. Saat App Center mendistribusikan rilis, App Center mengirimkan pemberitahuan email versi baru ke semua penguji yang diatur di tujuan. Anda dapat memilih untuk tidak memberi tahu penguji di tab tinjauan. Terakhir, pilih Distribusikan untuk merilis file ke penguji Anda.

Mendistribusikan menggunakan antarmuka baris perintah App Center

Peringatan

Anda memerlukan App Center CLI 2.7 atau yang lebih baru untuk menggunakan fitur ini.

Distribusikan rilis Anda menggunakan appcenter distribute release perintah di App Center CLI. Contoh perintah berikut mendistribusikan file yang dipanggil ~/releases/my_app-23.ipa ke grup Beta testers aplikasi My-App yang dimiliki oleh David.

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

Mendistribusikan menggunakan API

Anda dapat memanggil API App Center untuk mendistribusikan rilis. Pendekatan di bawah ini dimaksudkan untuk menggambarkan pendekatan kerja minimal, banyak tugas dapat disesuaikan lebih lanjut atau otomatis.

Implementasi sampel dapat dilihat di sini: https://github.com/microsoft/appcenter-Xamarin.UITest-Demo/blob/main/ac-distribute.sh

Prasyarat

  • Paket Aplikasi untuk diunggah dan didistribusikan.
  • Mendapatkan token API. Token API digunakan untuk autentikasi untuk semua panggilan API App Center.
  • Nama Grup Distribusi (opsional, jika tidak ada atau tidak valid unggahan akan tetap selesai)
  • {owner_name} Identifikasi dan {app_name} untuk aplikasi yang ingin Anda distribusikan rilisnya. Pengidentifikasi ini digunakan dalam URL untuk panggilan API. Untuk aplikasi yang dimiliki oleh pengguna, URL di App Center mungkin terlihat seperti: https://appcenter.ms/users/Example-User/apps/Example-App. Di sini, {owner_name} adalah Example-User dan {app_name} adalah Example-App. Untuk aplikasi yang dimiliki oleh org, URL mungkin https://appcenter.ms/orgs/Example-Org/apps/Example-App dan {owner_name} akan menjadi Example-Org.
Unggah Rilis Baru

Unggah rilis baru menggunakan panggilan API berurutan ini:

  1. Membuat unggahan rilis baru: Titik akhir yang akan dipanggil adalah POST /v0.1/apps/{owner_name}/{app_name}/uploads/releases

        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" -H "Content-Length: 0"
    

    Respons akan terlihat seperti ini, dengan {VARIABLE_NAME} mengganti data yang unik untuk setiap penggunaan:

         {
             "id": "{ID}",
             "package_asset_id": "{PACKAGE_ASSET_ID}",
             "upload_domain": "https://file.appcenter.ms",
             "token": "{TOKEN}",
             "url_encoded_token": "{URL_ENCODED_TOKEN}"
         }
    
  2. Salin parameter dari respons di langkah sebelumnya, karena sebagian besar digunakan pada langkah berikutnya, termasuk package_asset_id, upload_domain & url_encoded_token.

    Tentukan ukuran paket aplikasi Anda dalam byte. Disarankan untuk menggunakan perintah seperti wc -c ExampleApp.ipa untuk mendapatkan jumlah byte yang akurat.

    Atur MIME Typecontent_type untuk berdasarkan aplikasi Anda:

    • Android .apk menggunakan jenis vendor application/vnd.android.package-archive
    • Android .aab menggunakan jenis vendor application/x-authorware-bin
    • iOS menggunakan jenis umum application/octet-stream

    Perintah akhir akan terlihat seperti ini:

    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"
    

    Output yang dikembalikan akan terlihat seperti ini:

     {
         "error":false,
         "id":"{PACKAGE_ASSET_ID}",
         "chunk_size":4194304,
         "resume_restart":false,
         "chunk_list":[1,2,3,4,5],
         "blob_partitions":1,
         "status_code":"Success"
     }
    
  3. chunk_size Dengan menggunakan nilai yang tidak dapat disesuaikan, Anda dapat membagi unggahan aplikasi menjadi potongan berurutan untuk diunggah ke Distribusi. Misalnya, Anda dapat menggunakan split utilitas seperti ini:

    split -b $CHUNK_SIZE $RELEASE_FILE_LOCATION temp/split
    

    Perintah ini menghasilkan file berurutan dalam temp direktori bernama splitaa, splitab, dan sebagainya. Setiap file dibagi dalam chunk_size batas.

  4. Selanjutnya Anda perlu mengunggah setiap potongan paket aplikasi terpisah dengan blok masing-masing:

    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. Setelah unggahan selesai, perbarui status unggahan sumber daya menjadi uploadFinished.

    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/$ID"
    curl -H "Content-Type: application/json" -H "Accept: application/json" -H "X-API-Token: $API_TOKEN" \
    --data '{"upload_status": "uploadFinished","id": "$ID"}' \
    -X PATCH \
    $COMMIT_URL
    
  6. Setelah diunggah, ada penundaan singkat sebelum unggahan ditandai sebagai selesai. Polling untuk status ini untuk mendapatkan $RELEASE_ID untuk langkah berikutnya:

    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. Terakhir, rilis build. Titik akhir yang akan dipanggil adalah PATCH /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
    
Distribusikan Rilis

Distribusikan rilis yang diunggah ke penguji, grup, atau penyimpanan untuk melihat rilis di portal App Center. Tiga titik akhir tersebut adalah:

Contoh untuk grup:

    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}" 

Anda dapat menemukan ID grup distribusi di halaman pengaturan grup tersebut.

Permintaan untuk mendistribusikan ke beberapa tujuan direferensikan di sini untuk skenario yang lebih kompleks: PATCH /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}

Re-Release build

Untuk merilis build ke grup distribusi lain, dari tempat mana pun di App Center buka Distribusikan > Rilis lalu pilih rilis yang ingin Anda distribusikan lagi. Halaman detail rilis terbuka. Pilih tombol Distribusikan di sudut kanan atas layar dan pilih tujuan untuk memulai proses rilis ulang. Ikuti langkah-langkah dalam wizard dan akhirnya pilih Distribusikan untuk mengirim rilis ke grup/penguji atau toko.

Updates Wajib

Buat rilis wajib untuk memaksa semua pengguna menjalankan versi aplikasi yang sama. Ketika Anda melakukan ini, App Center akan menginstal pembaruan yang dipilih di semua perangkat penguji.

Anda hanya dapat membuat rilis wajib jika aplikasi Anda menggunakan App Center Distribute SDK. Buat rilis wajib dengan memilih kotak centang Pembaruan wajib dalam tahap peninjauan mendistribusikan rilis, atau Anda dapat menggunakan API.

Anda dapat melihat rilis wajib di App Center dengan membuka Rilis > Grup Distribusi > [Aplikasi > Anda]. Rilis wajib ditunjukkan oleh titik merah.

Setelah berhasil dirilis, penguji Anda dapat mengakses rilis melalui email, masuk ke App Center, atau melalui tautan langsung.

Anda dapat menemukan tautan ke rilis tertentu di halaman rilis untuk tujuan privat. Tombol Instal

Catatan

Android Application Bundles (AAB) tersedia untuk diunduh di halaman rilis dengan mengklik tombol unduh. Jika Anda memerlukan format file APK yang dapat diinstal, silakan gunakan portal instal (https://install.appcenter.ms) di perangkat Anda. Anda dapat menemukan tautan di bawah kode QR yang dihasilkan di samping tombol unduh.

Anda dapat menemukan tautan ke rilis tertentu ke tujuan publik pada tab rilis di grup publik. Tautan langsung publik