Lompat ke konten utama

Penandatanganan Android

Penghasil Keystore Android

Generasikan keystore Android secara online dalam beberapa detik, tanpa Android Studio atau keytool. Dapatkan keystore rilis PKCS#12, sertifikat PEM, dan tanda tangan SHA-1 dan SHA-256, siap untuk Gradle, Capacitor, fastlane, CI, dan Google Play.

Kontainer

PKCS#12

Kunci

RSA 2048, SHA-256

Tanda Tangan

Tanda Tangan SHA-1 dan SHA-256

Daftar penerbitan

  1. 1. Pilih nama alias dan kata sandi yang akan tetap dengan aplikasi ini sepanjang waktu.
  2. 2. Unduh keystore dan simpan metadata di manajer rahasia Anda.
  3. 3. Konfigurasi nama alias dan kata sandi yang sama di Gradle atau lingkungan CI Anda.
  4. 4. Tetapkan kunci unggah stabil agar rilis Play masa depan tidak rusak.

Input

Detail keystore

Isi informasi subjek yang harus diintegrasikan dalam sertifikat tanda tangan dan pilih nama alias yang stabil.

Keluaran

Bundle tanda tangan Android yang dihasilkan

Setelah penghasilan Anda akan mendapatkan keystore yang dapat diunduh bersama dengan ekspor sertifikat dan sidik jari yang diperlukan untuk pengaturan toko atau integrasi OAuth.

Generate bundle tanda tangan untuk menampilkan alias, sidik jari, dan unduhan file di sini.

Dasar

Apa itu keystore Android?

Keystore Android adalah sebuah file yang dilindungi kata sandi yang berisi kunci pribadi dan sertifikat yang digunakan untuk menandatangani aplikasi Anda. Setiap APK dan Android App Bundle harus ditandatangani sebelum dapat diinstal atau dipublikasikan, dan Android hanya menerima update ketika sudah ditandatangani dengan kunci yang sama dengan versi yang sudah terinstal.

File keystore ini membuatnya menjadi salah satu file paling penting dalam proyek Anda. Dengan Play App Signing, file ini berfungsi sebagai Kunci unggahanYang diperiksa oleh Google sebelum menerjemahkan kembali aplikasi Anda. Tanpa Play App Signing, itu adalah Kunci Tanda Tangan Aplikasi itself, and losing it means you can no longer update the app.

Penghasil ini menciptakan sebuah keystore PKCS#12 (.p12) dengan kunci RSA 2048-bit dan sertifikat SHA-256, sama seperti output yang dihasilkan oleh keytool dan wizard tanda tangan Android Studio, dengan validitas default 25 tahun yang memenuhi persyaratan Google Play.

Bagaimana keystore Anda dibuat

Bagaimana keystore Anda dihasilkan

  • Keystore dibuat secara langsung oleh endpoint Capgo yang tidak memiliki keadaan dan dikembalikan langsung ke browser Anda sebagai download.
  • Respons berita dikirim dengan Cache-Control: no-store. Kata sandi pribadi, kata sandi, dan file tidak disimpan ke database atau disimpan setelah respons.
  • Keystore dilindungi dengan kata sandi Anda menggunakan AES-256 enkripsi di dalam kontainer PKCS#12.
  • Tidak ada akun atau pendaftaran yang diperlukan, dan permintaan dibatasi untuk mencegah penyalahgunaan.

Perlu sebuah kunci yang tidak pernah meninggalkan mesin Anda? Jalankan yang setara keytool jalankan perintah di lokal. Ini menghasilkan jenis keystore yang sama.

Langkah demi langkah
keytool -genkeypair -v \
  -storetype PKCS12 \
  -keystore release.p12 \
  -alias release \
  -keyalg RSA -keysize 2048 \
  -validity 9125 \
  -dname "CN=Jane Doe, O=Acme Mobile, C=DE"

Langkah demi langkah

Cara Membuat Keystore Android Secara Online

Dari formulir kosong ke rilis yang ditandatangani di Google Play dalam enam langkah. Tiga langkah pertama dapat diselesaikan dalam kurang dari satu menit.

  1. Langkah 1

    Masukkan detail sertifikat

    Masukkan nama lengkap, alamat email, dan kode negara dua huruf code. Nama organisasi, unit, kota, dan negara bagian adalah opsional dan hanya muncul di subjek sertifikat.

  2. Langkah 2

    Pilih nama alias, keberlangsungan, dan kata sandi

    Pilih nama alias sederhana seperti rilis atau unggah, simpan keberlangsungan 25 tahun, dan buat kata sandi yang kuat minimal 8 karakter. Catat semua tiga hal tersebut sebelum melanjutkan.

  3. Langkah 3

    Generate dan download keystore

    Pilih Generate keystore, kemudian download file keystore .p12 dan sertifikat PEM. Salin fingerprint SHA-1 dan SHA-256 dari panel hasil.

  4. Langkah 4

    Simpan keystore dan kredit

    Simpan file keystore, nama alias, dan kata sandi bersama-sama di manajer kata sandi atau manajer rahasia. Jangan pernah mengkomit keystore ke Git.

  5. Langkah 5

    Konfigurasi tanda tangan di build Anda

    Pastikan Gradle, Capacitor CLI, fastlane, atau Capgo Cloud Build di keystore dengan alias dan kata sandi, kemudian bangun rilis AAB atau APK yang ditandatangani.

  6. Langkah 6

    Upload aplikasi yang ditandatangani ke Google Play

    Upload Android App Bundle yang ditandatangani di Play Console. Dengan Play App Signing, keystore ini menjadi kunci unggahan dan Google mengelola kunci tanda tangan akhir.

Pakai hasilnya

Tandatangani aplikasi Android dengan keystore yang dihasilkan

Ganti alias dan kata sandi dengan nilai yang Anda masukkan di atas. Karena keystore adalah PKCS#12, kata sandi kunci adalah sama dengan kata sandi toko.

Konfigurasi tanda tangan Gradle

Berfungsi untuk Capacitor, Ionic, React Native, Flutter, dan proyek native. Simpan kata sandi di gradle.properties atau variabel lingkungan.

android/app/build.gradle
// android/app/build.gradle
android {
    signingConfigs {
        release {
            storeFile file(RELEASE_STORE_FILE)
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_STORE_PASSWORD
            storeType "pkcs12"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

# ~/.gradle/gradle.properties (keep out of Git)
RELEASE_STORE_FILE=/path/to/release.p12
RELEASE_STORE_PASSWORD=your-password
RELEASE_KEY_ALIAS=release

Capacitor CLI

Buat Android App Bundle yang ditandatangani untuk aplikasi Capacitor dalam satu perintah.

Capacitor bangun tanda tangan
bunx cap build android \
  --keystorepath ./release.p12 \
  --keystorepass "your-password" \
  --keystorealias release \
  --keystorealiaspass "your-password" \
  --androidreleasetype AAB

Capgo Bangun Cloud

Simpan kunci keamanan sekali dan biarkan Capgo Bangun Cloud tanda tangan dan unggah setiap rilis.

Capgo CLI
bunx @capgo/cli@latest build credentials save \
  --platform android \
  --keystore ./release.p12 \
  --keystore-alias release \
  --keystore-key-password "your-password" \
  --keystore-store-password "your-password"

Kemampuan Capgo

Tambahkan properti tanda tangan ke aksi Gradle dari rahasia CI.

Fastfile
gradle(
  task: "bundle",
  build_type: "Release",
  properties: {
    "android.injected.signing.store.file" => ENV["RELEASE_STORE_FILE"],
    "android.injected.signing.store.password" => ENV["RELEASE_STORE_PASSWORD"],
    "android.injected.signing.key.alias" => ENV["RELEASE_KEY_ALIAS"],
    "android.injected.signing.key.password" => ENV["RELEASE_STORE_PASSWORD"],
  }
)

Verifikasi, konversi, dan simpan di CI

Periksa alias dan sidik jari, ubah ke JKS untuk alat lama, atau enkripsi file untuk rahasia CI.

keytool dan base64
# Inspect the keystore, alias, and fingerprints
keytool -list -v -keystore release.p12 -storetype PKCS12

# Convert to JKS if an older tool requires it
keytool -importkeystore \
  -srckeystore release.p12 -srcstoretype PKCS12 \
  -destkeystore release.jks -deststoretype JKS

# Base64-encode the keystore for a CI secret
base64 -i release.p12 | tr -d '\n' > release.p12.base64

Troubleshooting

Masalah Android keystore yang umum dan solusinya

Keystore telah dimanipulasi, atau kata sandi salah
Kata sandi toko salah. Salin lagi dari manajer kata sandi dan periksa ada tidaknya spasi di belakang di rahasia CI.
Tidak ada kunci dengan alias 'release' ditemukan di keystore
Alias tidak sesuai. Jalankan keytool -list pada keystore untuk melihat alias yang tepat, yang sensitif terhadap huruf besar-kecil.
Tidak ada blok akhir yang dipadatkan dengan benar
Kata sandi kunci salah. Dengan keystore PKCS#12, kata sandi kunci harus sama dengan kata sandi toko.
Format keystore tidak valid
Alat Java 8 yang lebih tua membaca file PKCS#12 sebagai JKS. Atur storeType "pkcs12" di Gradle atau konversi file ke JKS dengan keytool -importkeystore.
Aplikasi Android Bundle Anda ditandatangani dengan kunci yang salah
Google Play mengharapkan kunci unggulan asli. Tandatangani dengan kunci tersebut, atau minta reset kunci unggulan di Play Console menggunakan sertifikat PEM dari keystore baru.
Google Sign-In atau Firebase Auth gagal hanya pada versi rilis
Tambahkan tanda tangan SHA-1 dan SHA-256 ke Firebase, serta juga tanda tangan kunci Play App Signing dari Play Console.

FAQ

Pertanyaan dan jawaban tentang keystore Android

Informasi tentang format keystore, kata sandi, kevalidan, kunci unggulan Google Play, dan apa yang harus dilakukan jika kunci hilang.

Apa itu keystore Android?

Keystore Android adalah file yang dilindungi kata sandi yang menyimpan kunci pribadi dan sertifikat yang digunakan untuk menandatangani APK atau Android App Bundle Anda. Android dan Google Play menggunakan tanda tangan itu untuk memastikan bahwa setiap update berasal dari pengembang yang sama, sehingga kunci yang sama harus menandatangani semua rilis masa depan aplikasi.

Bagaimana cara saya menghasilkan keystore Android online tanpa Android Studio?

Isi nama, email, negara code, alias kunci, periode keberlakuan, dan kata sandi di formulir di atas, lalu pilih Generate keystore. Anda akan mendapatkan keystore .p12 yang siap digunakan, salinan sertifikat PEM, dan tanda tangan SHA-1 dan SHA-256. Tidak perlu menginstal Android Studio, JDK, atau keytool.

Apa format file yang dihasilkan oleh keystore Android ini?

Keystore ini menghasilkan file PKCS#12 (.p12) dengan kunci penandatanganan RSA 2048-bit dan sertifikat SHA-256, serta salinan sertifikat PEM. PKCS#12 adalah jenis keystore default sejak Java 9 dan diterima oleh Gradle, apksigner, jarsigner, dan Google Play. Jika alat yang lebih tua memerlukan file JKS, konversi dengan keytool -importkeystore.

Apakah aman menghasilkan keystore online? Apakah kunci saya disimpan?

Keystore ini dihasilkan secara on demand oleh endpoint Capgo yang tidak berubah dan dikembalikan langsung ke browser Anda. Respons dikirim dengan Cache-Control: no-store, dan kunci pribadi, kata sandi, dan file tidak pernah ditulis ke database atau disimpan setelah respons. Jika kebijakan keamanan Anda memerlukan kunci yang tidak pernah meninggalkan mesin Anda, gunakan perintah keytool setara yang ditampilkan pada halaman ini.

Apakah saya bisa menggunakan keystore ini untuk rilis Google Play?

Ya. Gunakan sebagai kunci unggah untuk aplikasi baru yang terdaftar di Play App Signing, atau sebagai kunci tanda tangan aplikasi untuk distribusi APK langsung. Google Play memerlukan sertifikat untuk tetap valid hingga setidaknya 22 Oktober 2033, yang keabsahan 25 tahun default mencakup.

Apakah kata sandi toko dan kata sandi kunci harus berbeda?

No. PKCS#12 keystores use one password for the container and the key. In Gradle, the Capacitor CLI, fastlane, or Capgo Cloud Build, enter the same value for both the store password and the key password.

Berapa lama periode keabsahan yang harus saya pilih?

Tetapkan default 25 tahun. Google merekomendasikan setidaknya 25 tahun, dan Google Play menolak unggahan yang ditandatangani dengan sertifikat yang akan berakhir sebelum 22 Oktober 2033. Anda tidak bisa memperpanjang keabsahan kunci yang sudah ada kemudian.

Apakah saya akan kehilangan keystore atau kata sandi saya?

If your app uses Play App Signing, you can ask Google to reset the upload key from Play Console by generating a new keystore here and uploading its PEM certificate. Without Play App Signing, a lost key means you cannot publish updates to the same app listing, so back up the file, alias, and password in a secret manager.

Apakah saya memerlukan alat ini untuk keystore debug?

Biasanya tidak. Android SDK akan membuat keystore debug secara otomatis di ~/.android/debug.keystore dengan kata sandi android dan alias androiddebugkey. Gunakan generator ini untuk kunci rilis dan unggahan yang harus tetap stabil di sepanjang rilis toko.

Di mana saya menemukan tanda tangan SHA-1 dan SHA-256?

Mereka ditampilkan di panel hasil setelah penghasilan. Daftarkan mereka dengan Firebase, Google Sign-In, Google Maps, atau Android App Links (assetlinks.json). Perlu diingat bahwa setelah Play App Signing mere-sign aplikasi Anda, layanan Google juga memerlukan tanda tangan kunci pengaturan aplikasi dari Play Console.

Apakah ini berfungsi untuk Capacitor, Ionic, React Native, dan Flutter apps?

Ya. Keystore adalah independen framework. Setiap bangun Android yang menggunakan Gradle dapat menandatangani dengan itu, termasuk Capacitor, Ionic, React Native, Flutter, dan proyek Kotlin atau Java native.