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:
- Azure DevOps menggunakan Tugas Distribusi App Center (versi 3+)
- Plugin Jenkins (versi 0.11.0+).
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.
- Pastikan Anda telah memperbarui manifes dan memiliki build Gradle yang dikonfigurasi dengan benar.
- 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.
- Daftarkan UDID untuk semua perangkat keras di profil provisi Anda.
- Di Xcode, bukaArsipProduk> untuk mengarsipkan aplikasi Anda.
- 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.
- Daftarkan satu perangkat atau daftarkan beberapa perangkat di akun pengembang Apple Anda.
- Di Xcode, bukaArsipProduk> untuk mengarsipkan aplikasi Anda.
- 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.
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.
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}
adalahExample-User
dan{app_name}
adalahExample-App
. Untuk aplikasi yang dimiliki oleh org, URL mungkin https://appcenter.ms/orgs/Example-Org/apps/Example-App dan{owner_name}
akan menjadiExample-Org
.
Unggah Rilis Baru
Unggah rilis baru menggunakan panggilan API berurutan ini:
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}" }
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 Type
content_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" }
- Android .apk menggunakan jenis vendor
chunk_size
Dengan menggunakan nilai yang tidak dapat disesuaikan, Anda dapat membagi unggahan aplikasi menjadi potongan berurutan untuk diunggah ke Distribusi. Misalnya, Anda dapat menggunakansplit
utilitas seperti ini:split -b $CHUNK_SIZE $RELEASE_FILE_LOCATION temp/split
Perintah ini menghasilkan file berurutan dalam
temp
direktori bernamasplitaa
,splitab
, dan sebagainya. Setiap file dibagi dalamchunk_size
batas.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
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
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
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:
- POST /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/testers
- POST /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/groups
- POST /v0.1/apps/{owner_name}/{app_name}/releases/{release_id}/stores
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.
Tautan ke Rilis
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.
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.