Daftar isi
Mengekspor APK dari Android Studio berarti menghasilkan paket rilis bertanda tangan melalui Build, Generate Signed Bundle or APK: pilih modulnya, arahkan ke keystore rilis Anda, pilih varian rilis, lalu build. Flutter membutuhkan satu perintah, React Native membutuhkan satu tugas Gradle, dan menarik APK terpasang dari ponsel membutuhkan ADB. Ekspor hanya build yang Anda miliki, tandatangani setiap rilis, dan jaga keystorenya.
Bagian dari hub modding: Cara Memod APK · Tarik aplikasi terpasang: Ekstrak APK · Tandatangani apa pun: Menandatangani APK.
Oleh Abdul Emam, penguji APK di ApkZena. Saya pernah mengirim build uji yang ditandatangani dengan kunci debug ke perangkat kedua dan menghabiskan satu jam bertanya-tanya mengapa pembaruan rilis menolak terpasang di atasnya. Kunci berbeda, aplikasi berbeda. Periksa tanda tangannya sebelum Anda membagikan apa pun.
Panduan ini membahas build debug versus rilis, penyiapan keystore, wizard ekspor Studio, build Flutter dan React Native, penarikan APK terpasang, keputusan APK versus AAB, penandatanganan, dan kesalahan build yang akan Anda temui.
APK Debug vs Rilis
APK debug memakai konfigurasi pengembangan dan ditujukan untuk pengujian, sementara APK rilis memakai pengaturan build produksi dan kunci penandatanganan rilis; pilih varian rilis untuk distribusi, lalu verifikasi sertifikat dan perilakunya di perangkat target.
Kapan Masing-Masing Berlaku
Debug untuk pengembangan harian dan sesi logcat. Rilis untuk penguji, distribusi sideload, dan apa pun yang keluar dari mesin Anda. Sebuah build debug yang lolos ke dunia luar tidak dapat menerima pembaruan yang benar kemudian, yang membiarkan semua orang yang memasangnya terkatung.
Sebelum Anda Mengekspor
Sebelum mengekspor, konfirmasikan bahwa keystore rilis ada, kata sandinya tersedia, cadangan disimpan dengan aman, dan varian build disetel ke rilis; pemeriksaan ini mencegah kesalahan kunci hilang dan pembuatan tak sengaja artefak bertanda tangan debug untuk distribusi.
Siapkan Keystore
Buat sekali dengan keytool, catat kedua kata sandi di tempat yang tahan lama, dan salin berkasnya ke dua lokasi independen. Dokumentasi penandatanganan aplikasi Google mendokumentasikan setiap flag dan alasan di balik menjaga kunci rilis tetap privat.
Cadangkan Keystore Terlebih Dahulu
Kehilangan berkas ini membuat setiap aplikasi yang ia tanda tangani menjadi yatim: tanpa pemulihan, tanpa banding, pemasangan ulang untuk semua pengguna. Cadangkan sebelum ekspor pertama, bukan setelah ketakutan pertama. Drive USB terenkripsi plus arsip luring menutup hampir semua mode kegagalan.
Konfigurasikan Varian Build
Pilih varian rilis di panel Build Variants agar ekspornya memakai pengaturan produksi. Membangun varian debug secara tidak sengaja menghasilkan paket yang terlihat selesai tetapi berperilaku seperti build uji, termasuk tanda tangan yang salah.
Cara Mengekspor APK Bertanda Tangan
Wizard Generate Signed Bundle or APK di Android Studio memandu ekspor sekali jalan dan penyiapan keystore awal, menanyakan modul, kunci, dan varian rilis sebelum build; verifikasi sertifikat yang dihasilkan alih-alih hanya mengandalkan pesan sukses wizard.
Langkah 1: Buka Wizard
Pilih Build, lalu Generate Signed Bundle or APK dari menu. Pilih APK alih-alih Bundle ketika tujuannya distribusi langsung, karena bundle hanya menjadi dapat dipasang melalui pemrosesan Play.
Langkah 2: Pilih Modul dan Keystore
Pilih modul aplikasinya, lalu pilih berkas keystore rilis beserta kata sandinya. Buat yang baru di sini hanya jika belum ada, dan segera cadangkan setelahnya: wizard tidak akan mengingatkan Anda dua kali.
Langkah 3: Pilih Rilis dan Build
Pilih build type rilis, aktifkan shrinking, lalu jalankan build-nya. APK yang bertanda tangan mendarat di app/release/, dinamai dengan variannya dan siap diverifikasi.
Langkah 4: Verifikasi Dengan apksigner
apksigner verify --print-certs app-release.apk
Konfirmasi sertifikat Anda dan hasil yang bersih. Lalu pasang di perangkat nyata, bukan hanya emulator, karena jalur kode khusus perangkat hanya ada di perangkat keras.
Cara Membangun APK di Flutter
Build Android Flutter mengompilasi kode Dart dan membungkus aplikasi melalui Gradle; setelah penandatanganan rilis dikonfigurasi, flutter build apk --release membuat APK di folder keluaran Flutter yang sebaiknya diverifikasi sebelum didistribusikan ke penguji pada perangkat target yang didukung.
Perintah Rilis
flutter build apk --release
Tambahkan --split-per-abi untuk berkas per arsitektur yang lebih kecil dan lebih cepat terpasang di perangkat terbatas. Keluaran berada di build/app/outputs/flutter-apk/, sebagaimana terdokumentasi di panduan deployment Android Flutter.
Penyiapan Penandatanganan
Buat android/key.properties yang menunjuk ke keystore rilis Anda dan hubungkan ke konfigurasi Gradle. Tanpanya, Flutter menandatangani dengan kunci debug dan keluarannya terlihat selesai sambil membawa identitas sekali pakai.
Cara Membangun APK di React Native
APK Android React Native dibangun melalui wrapper Gradle di direktori android/ proyek; konfigurasikan keystore rilis lebih dulu, lalu pakai tugas rilis proyek dan ikuti panduan penandatanganan resmi untuk penyiapan Gradle.
Tugas Gradle-nya
cd android && ./gradlew assembleRelease
APK yang bertanda tangan muncul di bawah android/app/build/outputs/apk/release/. Konfigurasikan signingConfigs dengan keystore rilis lebih dulu, atau tugasnya menghasilkan artefak tak bertanda yang memerlukan apksigner sesudahnya.
Cara Mengekstrak APK dari Aplikasi yang Terpasang
Mengekspor mengompilasi APK baru dari proyek kode sumber, sementara ekstraksi menyalin paket yang sudah terpasang di perangkat; pakai ekstraktor atau adb shell pm path dengan adb pull untuk tugas kedua, dengan mengikuti panduan ekstraksi APK.
APK vs AAB untuk Distribusi
Android App Bundle adalah format penerbitan yang proses Google Play menjadi APK khusus perangkat, sementara APK mandiri dapat dipasang langsung untuk pengujian atau distribusi; pilih artefak berdasarkan kanal target Anda dan persyaratan terkini platform.
Kapan Menghasilkan Yang Mana
Daftar Play berarti AAB, selalu. Sideloading, serah terima penguji, pengarsipan, dan basis modding berarti APK. Menghasilkan artefak yang salah membuang satu siklus build dan membingungkan penerimanya, jadi putuskan kanalnya sebelum membuka wizard mana pun.
Perbandingan APK versus AAB membahas mekanisme bundle, penandatanganan Play, dan kasus di mana setiap format menang.
Cara Menandatangani APK yang Sudah Dibangun
Android Studio dapat menandatangani APK ketika wizard ekspor atau konfigurasi Gradle menyediakan sebuah keystore, sementara apksigner dapat menandatangani dan memverifikasi keluaran dari sistem build lain; periksa sertifikatnya sebelum membagikan dan simpan kuncinya untuk pembaruan mendatang.
Pembuatan keystore, pemilihan skema, dan setiap pesan kesalahan ada di panduan penandatanganan. Tandatangani dan verifikasi sebagai satu gerakan sebelum berkas apa pun meninggalkan mesin Anda.
Kesalahan Build Umum
Keystore yang hilang, konfigurasi penandatanganan yang absen, kegagalan Gradle, dan kelas reflektif yang dihapus dapat memengaruhi build Android Studio, Flutter, atau React Native; periksa pesan kesalahan pertama dan identifikasi apakah penandatanganan, penyiapan dependensi, atau shrinking rilis yang gagal sebelum mencoba ulang tugas build.
Keystore Tidak Ditemukan
Jalur salah, berkas dipindah, atau alias salah ketik. Konfirmasi dengan pengelola berkas dan keytool -list, lalu simpan keystore di satu folder tetap agar jalurnya tidak pernah bergeser antar proyek.
Konfigurasi Penandatanganan Hilang
Gradle membangun tanpa signingConfigs atau berkas properti yang ia rujuk. Tambahkan konfigurasinya, arahkan ke keystore rilis, dan bangun ulang. Keluaran tak bertanda dari penyebab ini terlihat lengkap tetapi tidak terpasang di mana pun.
Build Gradle Gagal
Resolusi dependensi, lisensi SDK, atau ketidakcocokan versi menghentikan sebelum pengemasan dimulai. Baca hanya kesalahan pertama: Gradle berhenti di akar masalah, dan segala sesuatu di bawahnya biasanya adalah dampak lanjutan.
R8 Menghapus Kode yang Dibutuhkan
Shrinking menghapus kelas yang dijangkau aplikasi melalui refleksi, menghasilkan crash saat berjalan pada build rilis yang tidak pernah ditampilkan build debug. Tambahkan aturan keep untuk kelas yang terdampak, bangun ulang, dan uji ulang di perangkat keras.
Konflik Version Code
Build rilis dengan version code sama dengan atau di bawah salinan yang terpasang akan terpasang sebagai penurunan versi dan gagal diam-diam atau nyata tergantung perangkatnya. Naikkan versionCode untuk setiap build yang didistribusikan, dan catat version code mana yang dikirim ke kelompok penguji mana.
Komponen SDK yang Hilang
Mesin baru yang tanpa revisi build-tools yang tepat gagal sebelum mengompilasi apa pun. Pasang versi platform dan build-tools persis yang ditargetkan proyek melalui SDK Manager, dan pertahankan versi itu terkunci di seluruh mesin tim.
Daftar Periksa Ekspor Sebelum Membagikan
Sebelum membagikan APK rilis, konfirmasikan varian rilis, sertifikat penandatanganan yang diharapkan, version code yang meningkat, keberhasilan pemasangan di perangkat target, dan cadangan keystore terkini; pemeriksaan ini menangkap kesalahan pengemasan sebelum penerima mengandalkan berkas itu untuk pengujian atau distribusi.
Lima Konfirmasi
- Varian rilis dipilih, bukan debug.
- apksigner verify menyebut sertifikat produksi Anda.
- Version code melampaui setiap build yang sudah didistribusikan.
- Terpasang dan diluncurkan sekali di perangkat keras nyata.
- Cadangan keystore dikonfirmasi terkini sebelum mengirim berkasnya.
Ekspor build rilis, tandatangani dengan keystore yang dicadangkan, dan verifikasi sebelum membagikan. Ketika tujuannya mempelajari aplikasi yang terpasang alih-alih membangunnya, panduan ekstraksi mengambil alih dari sini.
Poin penting
- Ekspor hanya build rilis, ditandatangani dengan keystore produksi yang Anda cadangkan dua kali.
- Flutter dan React Native sama-sama membangun APK rilis dari satu perintah begitu penandatanganan dikonfigurasi.
- Verifikasi setiap keluaran dengan apksigner dan uji di perangkat nyata sebelum mendistribusikannya.
Pertanyaan umum
Apa bedanya APK debug dan APK rilis?
Build debug memakai kunci yang dibuat otomatis dan mempertahankan debug aktif, sehingga hanya terpasang untuk pengujian dan tidak boleh pernah didistribusikan. Build rilis dikecilkan, ditandatangani dengan keystore produksi Anda, dan mewakili identitas permanen aplikasi. Kirim hanya build rilis, dan simpan cadangan keystore dua kali.
Bagaimana cara mengekspor APK bertanda tangan dari Android Studio?
Buka Build, lalu Generate Signed Bundle atau APK, pilih APK, pilih modul Anda, dan arahkan wizard ke keystore rilis Anda. Pilih varian rilis, aktifkan shrinking, lalu build. Verifikasi keluarannya dengan apksigner sebelum mendistribusikannya ke perangkat atau penguji mana pun.
Apa itu keystore?
Keystore adalah berkas terenkripsi yang menyimpan kunci penandatangan pribadi dan sertifikat Anda, dikunci di balik kata sandi yang Anda tetapkan. Android mengidentifikasi aplikasi Anda dengan kunci ini di setiap pembaruan yang akan pernah diterimanya. Kehilangan berkasnya secara permanen membuat aplikasi menjadi yatim, memaksa pengguna memasang ulang dengan identitas baru.
Bisakah saya mengekstrak APK tanpa root?
Bisa. Aplikasi ekstraktor dan ADB menjangkau setiap aplikasi yang Anda pasang tanpa perlu root, memakai pm path untuk menemukan paketnya dan adb pull untuk menyalinnya. Root hanya penting untuk partisi sistem yang sebaiknya Anda biarkan. Rutinitas lengkapnya ada di panduan ekstraksi kami.
Bagaimana cara membangun APK di Flutter?
Jalankan flutter build apk --release dari akar proyek, atau tambahkan --split-per-abi untuk berkas per arsitektur yang lebih kecil. Keluaran berada di bawah build/app/outputs/flutter-apk/. Konfigurasikan android/key.properties dengan keystore rilis Anda lebih dulu, atau build akan ditandatangani dengan kunci debug.
Apa bedanya APK dan AAB?
APK terpasang langsung di perangkat mana pun, sementara AAB adalah wadah penerbitan yang hanya Google Play ubah menjadi APK khusus perangkat untuk tiap perangkat. Unggah AAB ke toko dan ekspor APK untuk distribusi langsung, pengujian, dan sideloading. Panduan APK versus AAB kami membandingkan kedua jalur itu.
Bagaimana cara menandatangani APK yang saya bangun?
Tandatangani APK dengan apksigner dan keystore rilis Anda, lalu verifikasi sertifikatnya sebelum distribusi. Android Studio dapat menandatangani selama wizard atau melalui signingConfigs Gradle saat dikonfigurasi. Konfirmasi juga build type dan version code, karena tanda tangan yang valid saja tidak membuat build debug siap untuk pengguna.
Apa itu shrinking R8?
R8 adalah pengompres dan obfuscator kode milik Android: ia menghapus kelas dan metode yang tidak terpakai, lalu mengganti nama sisanya. Build rilis mengaktifkannya untuk memangkas ukuran dan memperlambat rekayasa balik seadanya. Uji build yang sudah dikecilkan di perangkat nyata, karena shrinking agresif kadang menghapus kode yang dibutuhkan aplikasi.
Bagaimana cara memverifikasi APK ditandatangani dengan benar?
Jalankan apksigner verify --print-certs terhadap berkasnya dan konfirmasi bahwa ia menyebut sertifikat Anda tanpa kesalahan. Verify yang lulus berarti paket utuh dan dapat dipasang. Yang gagal berarti build, kunci, atau transfer berkasnya perlu diperhatikan sebelum apa pun dikirim.
Bisakah saya membangun APK secara gratis?
Bisa. Android Studio, SDK build tools, Flutter, dan React Native semuanya gratis, dan menandatangani dengan keystore Anda sendiri tidak biaya apa pun. Biaya nyata yang sebenarnya hanya mesin yang menjalankan IDE dan disiplin untuk mencadangkan keystore Anda dua kali.
Cara Memodifikasi APK (Game): Metode, Alat, dan Risiko (2026)