Penandatanganan Aplikasi
Kunci dan Play App Signing.
Penandatanganan Aplikasi adalah pelajaran Android Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Android Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Android Academy mencakup 4 pelajaran total.
Mengapa Aplikasi Harus Ditandatangani
Android tidak akan memasang aplikasi kecuali aplikasi tersebut ditandatangani secara digital. Tanda tangan membuktikan dua hal: siapa yang menerbitkan aplikasi dan bahwa APK belum diubah sejak saat itu.
Yang sangat penting, tanda tangan menghubungkan pembaruan dengan aplikasi asli. Pembaruan hanya diterima jika ditandatangani dengan key yang sama seperti versi yang terpasang. Jika key tersebut hilang, Anda tidak akan pernah bisa memperbarui aplikasi lagi.
Pelajaran ini membahas keystore, konfigurasi penandatanganan, dan pendekatan modern yang lebih aman dari Google: Play App Signing.
Keystore dan Key
Identitas penandatanganan Anda tersimpan dalam file keystore (.jks atau .keystore). Sebuah keystore dapat menyimpan beberapa key; setiap key memiliki alias dan password sendiri.
- Password keystore — membuka file.
- Alias key — memberi nama key di dalamnya.
- Password key — membuka key tertentu tersebut.
Build debug yang Anda jalankan setiap hari ditandatangani secara otomatis dengan keystore debug sementara. Untuk rilis, Anda memerlukan keystore sendiri.
Membuat Keystore
Anda dapat membuat keystore dari dialog Android Studio atau dengan perintah keytool yang disertakan dalam JDK.
Gunakan masa berlaku yang panjang (25 tahun atau lebih) — jika key kedaluwarsa, Anda tidak dapat menerbitkan pembaruan. RSA 2048 adalah standar yang digunakan.
keytool -genkeypair \
-v \
-keystore release.jks \
-alias upload \
-keyalg RSA \
-keysize 2048 \
-validity 10000Blok signingConfigs
Untuk menandatangani secara otomatis selama build Gradle, deklarasikan entri signingConfigs dan hubungkan entri tersebut ke jenis build release.
Ini berfungsi, tetapi perhatikan bahwa password terlihat langsung di file build — kita akan memperbaikinya berikutnya.
android {
signingConfigs {
create("release") {
storeFile = file("release.jks")
storePassword = "superSecret"
keyAlias = "upload"
keyPassword = "superSecret"
}
}
buildTypes {
release {
signingConfig = signingConfigs.getByName("release")
isMinifyEnabled = true
}
}
}Jauhkan Rahasia dari Git
Jangan pernah melakukan commit terhadap password atau keystore ke sistem pengontrol versi. Sebagai gantinya, baca keduanya dari file lokal keystore.properties yang diabaikan Git.
Tambahkan keystore.properties dan *.jks ke .gitignore.
// top of app/build.gradle.kts
val keystoreProps = Properties().apply {
val f = rootProject.file("keystore.properties")
if (f.exists()) load(f.inputStream())
}
android {
signingConfigs {
create("release") {
storeFile = file(keystoreProps["storeFile"] as String)
storePassword = keystoreProps["storePassword"] as String
keyAlias = keystoreProps["keyAlias"] as String
keyPassword = keystoreProps["keyPassword"] as String
}
}
}File keystore.properties
File properties yang sesuai adalah daftar biasa dengan format key=value, tidak disimpan di Git dan disimpan dengan aman (di pengelola password atau penyimpanan rahasia CI).
Di server CI, Anda akan memasukkan nilai-nilai ini sebagai rahasia yang bersumber dari lingkungan, bukan sebagai file yang di-commit.
# keystore.properties (git-ignored!)
storeFile=release.jks
storePassword=superSecret
keyAlias=upload
keyPassword=superSecretPlay App Signing
Play modern menggunakan Play App Signing. Di sini Google menyimpan key penandatanganan aplikasi yang sebenarnya dalam infrastrukturnya yang aman dan menggunakannya untuk menandatangani APK yang dikirimkan kepada pengguna.
Anda hanya mengelola key pengunggahan: Anda menandatangani bundle dengan key tersebut lalu mengunggahnya. Play memverifikasi key pengunggahan Anda, menghapus tanda tangan tersebut, lalu menandatangani ulang dengan key penandatanganan aplikasi.
Keuntungan besarnya: jika key pengunggahan Anda hilang, Anda dapat meminta pengaturan ulang — sedangkan key penandatanganan aplikasi (yang dipercaya pengguna) tetap aman bersama Google.
Key Pengunggahan vs Key Penandatanganan Aplikasi
Dua key, dua tugas — jangan sampai tertukar:
- Key pengunggahan — milik Anda. Menandatangani AAB yang Anda unggah. Dapat diatur ulang jika hilang.
- Key penandatanganan aplikasi — milik Google (atau key yang pernah Anda unggah). Menandatangani APK final yang dipasang pengguna. Bersifat permanen.
Saat mendaftarkan aplikasi baru, cara paling sederhana adalah membiarkan Google membuat key penandatanganan aplikasi, lalu Anda menandatangani unggahan dengan key pengunggahan.
Memverifikasi Tanda Tangan
Untuk memastikan cara artefak ditandatangani, gunakan apksigner dari build-tools Android SDK. Alat ini melaporkan sertifikat penandatanganan dan skema tanda tangan mana (v1/v2/v3) yang tersedia.
Membandingkan sidik jari SHA-256 sertifikat juga merupakan cara mendaftarkan aplikasi Anda ke layanan seperti Firebase atau Google Sign-In.
# Verify and print signer certificates of an APK
apksigner verify --print-certs app-release.apk
# Show the SHA-256 fingerprint of a keystore key
keytool -list -v -keystore release.jks -alias uploadMelindungi Key Anda
Key pengunggahan Anda sulit diganti, sedangkan key penandatanganan aplikasi (jika dikelola sendiri) tidak dapat diganti. Perlakukan keduanya seperti harta yang sangat berharga:
- Cadangkan keystore di setidaknya dua lokasi yang aman.
- Simpan password di pengelola password, jangan pernah di source code.
- Gunakan Play App Signing agar key pengunggahan yang hilang dapat dipulihkan.
- Batasi anggota tim yang dapat mengakses keystore.
Banyak aplikasi yang telah diterbitkan terpaksa ditinggalkan hanya karena pengembang kehilangan key dan tidak dapat lagi mengirimkan pembaruan.
Menggabungkan Semuanya
Alur lengkap penandatanganan rilis adalah sebagai berikut:
- Buat keystore pengunggahan dengan
keytool. - Hubungkan ke
signingConfigs, dengan membaca rahasia darikeystore.properties. - Bangun
.aabyang ditandatangani dengan./gradlew bundleRelease. - Unggah ke Play, yang akan menandatangani ulang dengan key penandatanganan aplikasi sebelum mengirimkannya kepada pengguna.
Mulai sekarang, setiap pembaruan harus ditandatangani dengan key pengunggahan yang sama.
Pemeriksaan Singkat
Dengan Play App Signing aktif, key mana yang Anda gunakan untuk menandatangani bundle yang Anda unggah, dan apa yang terjadi jika key tersebut hilang?
Ringkasan: Penandatanganan Aplikasi
Penandatanganan membuat aplikasi Android dapat dipasang dan diperbarui:
- Sebuah keystore menyimpan key; setiap key memiliki alias dan password.
- Buat key dengan masa berlaku panjang menggunakan
keytool, lalu hubungkan kesigningConfigs. - Jauhkan password dari Git melalui
keystore.propertiesdan.gitignore. - Play App Signing memisahkan key menjadi key pengunggahan Anda yang dapat diatur ulang dan key penandatanganan aplikasi permanen milik Google.
- Cadangkan key dengan hati-hati — key yang hilang dapat mengakhiri keberlangsungan sebuah aplikasi.
Berikutnya: menyiapkan Play Console dan halaman aplikasi Anda di toko.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Penandatanganan Aplikasi” gratis?
Ya — teks lengkap “Penandatanganan Aplikasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Android Academy, upgrade ke CoddyKit PRO. Kursus Android Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Penandatanganan Aplikasi”?
Kunci dan Play App Signing. Kamu berlatih Android Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Android Academy?
Tidak diperlukan pengalaman sebelumnya. Android Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Penandatanganan Aplikasi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Android Academy ini?
Ya. Setiap pelajaran Android Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Menyiapkan Build Rilis
- Penandatanganan Aplikasi
- Play Console dan Listing
- Peluncuran Bertahap dan Pembaruan