2011-08-18 23 views
144

Bir Android apk'sinin bir sürümle imzalandığını ve bir hata ayıklama belgesine sahip olmadığını nasıl kontrol edebilirim?Bir Android apk sürümünün sürüm belgesiyle nasıl imzalandığını nasıl doğrularım?

+5

yazdım [bir komut dosyası] (https://raw.githubusercontent.com/johnnylambada/robospanner/master/apk/apk-validate) bir anahtar deposundaki karşı apk doğrular o . – JohnnyLambada

+0

, sizinkine sahipseniz yanıtı kabul edin. –

+0

@JohnnyLambada Komut dosyanızı Mac'te nasıl çalıştırabilirim? –

cevap

248

Bu komutu,

$ jarsigner -verify -verbose -certs my_application.apk 

siz "CN = Android Debug" görürseniz (java için cmd istemi içinde < jdk < bin yolunu gidin), bu .apk oluşturulan ayıklama anahtarla imzalanan demektir Android SDK tarafından (imzasız demektir), aksi takdirde CN için bir şey bulacaksınız. Daha fazla ayrıntı için bkz: http://developer.android.com/guide/publishing/app-signing.html

+0

2 diff apk files.so için komut yürütme sonunda doğrulanmış jar olarak iletiyi aldım. ama 1 = 1 apk ve diğer apk için farklı CN = "android hata ayıklama" verir gibi. 1 imzalanan knw için. – iRunner

+0

@iRunner TÜM uygulamalar hata ayıklama anahtarı veya gerçek anahtar kullanarak bir cihaza kurulum yapmadan önce imzalanmalıdır. – Chloe

+2

Bu, imzayı nasıl doğrular? Sistemin güvenilir CA'larını kullanacak mı? Ya da bu sadece kavanoz dosyalarının bütünlüğünü kontrol etmek için bir araçtır? Teşekkürler –

52

Bu komutu: .apk düzgün açmışsa

$ jarsigner -verify my_signed.apk 

(Jarsigner cmd istemi Goto java-> jdk-> bin yolunun Java bin klasöründe) , Jarsigner baskılar

+9

Hem hata ayıklama hem de serbest bırakma apletleri imzalandığından bu yeterince iyi değil "jar onaylandı". @ Anass'ın cevabının ayrıntılarını kontrol edin. – rpattabi

27

kullanın konsol komutunu "kavanoz doğrulanmadı":

apksigner verify --print-certs application-development-release.apk

Yo apksigner'ı ../sdk/build-tools/24.0.3/apksigner.bat adresinde bulabilirsin. Sadece 24.0.3 ve üstü yapı araçları için.

Ayrıca google docs okuyun: https://developer.android.com/studio/command-line/apksigner.html

+0

"% LOCALAPPDATA% \ Android \ sdk \ build-tools \ 25.0.3 \" (ve kurduğum diğer tüm sürüm araçları sürümü) 'apksigner'ı buldum – Jon

+0

bilgi bulmak için: http://stackoverflow.com/q/40004884/1747983 – Tilo

+2

"Apksigner" in '26.0.0 sürümündeki sürüm araçlarında eksik olduğunu unutmayın. Https://issuetracker.google.com/issues/62696222 adresinde izlenir ve sonraki sürümde düzeltilmesi gerekir. O zamana kadar olan geçici çözüm, '25.0.3' den 'apksigner' kullanmaktır. – friederbluemle