Saya telah mengunggah aplikasi saya ke Google Play (saat itu disebut Android Market) beberapa waktu lalu.
Hari ini saya memperbarui aplikasi, tetapi saya telah menghapus keystore sebelumnya dan membuat yang baru.
Saat mengunggah, dikatakan bahwa APK harus ditandatangani dengan sertifikat yang sama dengan versi sebelumnya:
Gagal mengunggah
Anda mengunggah APK yang ditandatangani dengan sertifikat berbeda ke APK Anda sebelumnya. Anda harus menggunakan sertifikat yang sama.
APK Anda yang sudah ada ditandatangani dengan sertifikat dengan sidik jari:
[SHA1: 89: 2F: 11: FE: CE: D6: CC: DF: 65: E7: 76: 3E: DD: A7: 96: 4F: 84: DD: BA: 33]
dan sertifikat yang digunakan untuk menandatangani APK yang Anda unggah memiliki sidik jari:
[SHA1: 20: 26: F4: C1: DF: 0F: 2B: D9: 46: 03: FF: AB: 07: B1: 28: 7B: 9C: 75: 44: CC]
Tetapi saya tidak memiliki sertifikat ini, dan tidak ingin menghapus dan menerbitkan kembali aplikasi, karena memiliki pengguna aktif.
Apa yang bisa saya lakukan untuk menandatangani aplikasi dengan sertifikat baru?
sumber
Jawaban:
Tidak ada. Baca dokumentasinya: Penerbitan Pembaruan di Android Market
sumber
Apakah Anda masuk dengan tombol debug karena kesalahan?
Google Play tidak memungkinkan Anda untuk mempublikasikan aplikasi yang ditandatangani dengan keystore debug Anda. Jika Anda mencoba mengunggah APK seperti itu, Google Play akan gagal dengan pesan "Anda mengunggah APK yang masuk dalam mode debug. Anda harus masuk APK dalam mode rilis."
Namun, jika Anda mencoba mengunggah pembaruan yang ditandatangani dengan keystore debug, Anda tidak akan melihat pesan ini; Google Play akan menampilkan pesan yang ditampilkan dalam pertanyaan, merujuk pada sidik jari SHA1.
Jadi pertama-tama, periksa apakah Anda menandatangani aplikasi dengan kunci debug secara tidak sengaja.
Bagaimana cara saya memeriksa kunci masuk mana yang digunakan?
Kumpulkan informasi dari APK
Anda dapat memeriksa sertifikat mana APK asli dan pembaruan APK ditandatangani dengan menggunakan perintah ini, menggunakan Java
keytool
:Ini menunjukkan kepada Anda informasi terperinci tentang cara penandatanganan APK, misalnya:
Bagian penting yang perlu diperhatikan di sini - untuk setiap APK - adalah nilai sidik jari SHA1 , nilai identitas Pemilik , dan Valid dari / hingga tanggal.
Jika
keytool
perintah itu tidak berfungsi (-jarfile
opsi ini membutuhkan Java 7), Anda bisa mendapatkan lebih banyak informasi dasar melaluijarsigner
perintah:Sayangnya ini tidak menunjukkan sidik jari SHA1, tetapi menunjukkan identitas pemilik X.509, bersama dengan tanggal kedaluwarsa sertifikat. Sebagai contoh:
Anda dapat mengabaikan pesan "CertPath tidak divalidasi", bersama dengan peringatan tentang rantai sertifikat atau cap waktu; mereka tidak relevan dalam hal ini.
Bandingkan nilai Pemilik, SHA1, dan Kadaluwarsa antara APK
Jika nilai identitas Pemilik / X.509 adalah
CN=Android Debug, O=Android, C=US
, maka Anda telah menandatangani APK dengan kunci debug Anda , bukan kunci rilis asliJika nilai sidik jari SHA1 berbeda antara yang asli dan yang diperbarui APK, maka Anda tidak menggunakan kunci penandatanganan yang sama untuk kedua APK
Jika nilai identitas Pemilik / X.509 berbeda, atau tanggal kedaluwarsa sertifikat berbeda antara kedua APK, maka Anda tidak menggunakan kunci penandatanganan yang sama untuk kedua APK
Perhatikan bahwa meskipun nilai Pemilik / X.509 identik antara kedua sertifikat, ini tidak berarti bahwa sertifikat tersebut identik - jika ada hal lain yang tidak cocok - seperti nilai sidik jari - maka sertifikat berbeda.
Cari keystore asli, periksa cadangan
Jika kedua APK memiliki informasi sertifikat yang berbeda, maka Anda harus menemukan keystore asli, yaitu file dengan nilai sidik jari SHA1 pertama yang Google Play (atau
keytool
) katakan kepada Anda.Cari melalui semua file keystore yang dapat Anda temukan di komputer Anda, dan dalam cadangan apa pun yang Anda miliki, sampai Anda memilikinya dengan sidik jari SHA1 yang benar:
Cukup tekan Enterjika diminta kata sandi - Anda tidak harus memasukkannya jika Anda hanya ingin cepat memeriksa nilai SHA1.
Saya tidak dapat menemukan keystore asli di mana pun
Jika Anda tidak dapat menemukan keystore asli, Anda tidak akan pernah dapat mempublikasikan pembaruan apa pun ke aplikasi khusus ini.
Android menyebutkan ini secara eksplisit di halaman Menandatangani Aplikasi Anda :
Setelah rilis pertama APK, semua rilis berikutnya harus ditandatangani dengan kunci yang sama persis.
Bisakah saya mengekstrak kunci tanda tangan asli dari APK asli?
Tidak, ini tidak mungkin. APK hanya berisi informasi publik, dan bukan informasi kunci pribadi Anda.
Bisakah saya bermigrasi ke kunci penandatanganan baru?
Tidak. Bahkan jika Anda menemukan yang asli, Anda tidak dapat menandatangani APK dengan kunci A, kemudian menandatangani pembaruan berikutnya dengan kedua tombol A dan B, kemudian menandatangani pembaruan berikutnya setelah itu hanya dengan tombol B.
Menandatangani APK (atau file JAR apa pun) dengan beberapa kunci secara teknis dimungkinkan, tetapi Google Play tidak lagi menerima APK dengan banyak tanda tangan.
Mencoba melakukannya akan menghasilkan pesan "APK Anda telah ditandatangani dengan beberapa sertifikat. Harap hanya menandatanganinya dengan satu sertifikat dan mengunggahnya lagi."
Apa yang dapat saya?
Anda harus membuat aplikasi Anda dengan ID aplikasi baru (mis., Ubah dari "com.example.myapp" menjadi "com.example.myapp2") dan buat daftar baru di Google Play.
Mungkin Anda juga harus mengubah kode Anda sehingga orang dapat menginstal aplikasi baru bahkan jika mereka memiliki aplikasi lama diinstal, misalnya Anda perlu memastikan bahwa Anda tidak memiliki penyedia konten yang saling bertentangan.
Anda akan kehilangan basis instalasi yang ada, ulasan, dll., Dan harus menemukan cara untuk membuat pelanggan Anda yang ada menghapus instalasi aplikasi lama dan menginstal versi baru.
Sekali lagi, pastikan Anda memiliki cadangan aman keystore dan kata sandi yang Anda gunakan untuk versi ini.
sumber
[CertPath not validated: Path does not chain with any of the trust anchors]
, bukan masalah eather? Saya memang melihat nama sayaCN
jadi saya kira saya sudah menandatanganinya dengan benar :)Tidak ada - Google mengatakannya dengan jelas bahwa aplikasi diidentifikasi oleh kunci yang digunakan untuk menandatanganinya. Akibatnya jika Anda kehilangan kunci, Anda perlu membuat aplikasi baru.
sumber
Hari ini saya menghadapi masalah yang sama, sayangnya, saya memiliki dua alias di file keystore saya.
sumber
Saya baru saja mengalami hal ini dari warna biru jernih. Saya benar-benar tidak berpikir saya mengubah apa pun.
Namun,
Build => Clean Project
perbaiki.sumber
Di sini saya mendapatkan jawaban untuk pertanyaan itu. Setelah mencari terlalu lama akhirnya saya bisa memecahkan kunci dan kata sandi untuk ini. Saya lupa kunci dan alias saya juga file jks tapi untungnya saya tahu banyak kata sandi apa yang telah saya masukkan ke dalamnya. tetapi menemukan kombinasi yang tepat untuk itu adalah tugas terberat bagi saya.
Solusi - Unduh ini - plugin Keytool IUI versi 2.4.1
jendela akan muncul sekarang itu menunjukkan nama alias .. jika Anda file jks benar .. klik kanan pada alias dan tekan "lihat rantai sertifikat" .. itu akan menampilkan Kunci SHA1 .. cocokkan kunci ini dengan kunci tha Anda dapatkan saat Anda mengunggah apk di google app store ...
jika cocok maka Anda dengan file jks yang tepat dan alias ..
sekarang beruntung saya punya banyak kata sandi untuk mencocokkan ..
sekarang buka scrren ini letakkan jalur jks yang sama .. dan kata sandi (di antara kata sandi yang Anda miliki) letakkan setiap jalur di "File sertifikat"
jika layar menunjukkan kesalahan maka kata sandi tidak cocok .. jika tidak menunjukkan kesalahan maka itu berarti Anda dengan file jks yang benar. koreksi alias dan kata sandi () sekarang dengan itu Anda dapat mengunggah apk di play store :)
sumber
Jika Anda memiliki file apk sebelumnya dengan Anda (cadangan) kemudian gunakan jarSigner untuk mengekstrak sertifikat dari apk itu, kemudian gunakan kunci itu atau gunakan keytool untuk mengkloning sertifikat itu, mungkin itu akan membantu ... Tautan yang bermanfaat adalah dokumen jarsigner dan dokumen keytool. .
sumber
Saya sangat merekomendasikan Keystore Explorer ( https://keystore-explorer.org/ ) yang memungkinkan Anda mengakses keystore Anda tanpa harus mengunggahnya ke Google Play. Dengan cara ini Anda dapat memecahkan masalah apakah Anda memasukkan kata sandi yang salah.
sumber
Anda dapat menggunakan fitur baru penandatanganan aplikasi Google play untuk menghasilkan file kunci baru.
Setelah Mei 2017 Google play store menambahkan fitur baru di Play store dan Ini Berita Baik Untuk Pengembang Android. Dari fitur ini, Pengembang dapat memperbarui aplikasi atau Apk mereka yang kehilangan file KeyStore. Anda harus mengaktifkan penandatanganan aplikasi google play di konsol play store.
https://support.google.com/googleplay/android-developer/answer/7384423?hl=id
http://www.geekcodehub.com/2018/05/23/keystore-lost-in-android/
sumber
Saya menghadapi masalah ini baru-baru ini, setelah mencoba berbagai cara untuk masuk seperti mengaktifkan V1 atau V2, masuk dengan mengubah nama alias dan terakhir mengetahui bahwa saya menggunakan file penyimpanan kunci yang salah
sumber
Kesalahan [konyol] saya adalah saya menggunakan file app-debug.apk alih-alih file app-release.apk. Anda harus memilih "lepaskan" dalam bingkai "Bangun Varian" saat Anda membuat APK yang ditandatangani. File app-release.apk harus berada di bawah folder "app \ release" di root proyek Anda.
sumber