0Pricing
Android Academy · Pelajaran

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 10000

Blok 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=superSecret

Play 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 upload

Melindungi 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 dari keystore.properties.
  • Bangun .aab yang 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 ke signingConfigs.
  • Jauhkan password dari Git melalui keystore.properties dan .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

  1. Menyiapkan Build Rilis
  2. Penandatanganan Aplikasi
  3. Play Console dan Listing
  4. Peluncuran Bertahap dan Pembaruan
← Kembali ke Android Academy