2011-08-18 11 views
144

Android apkがリリースで署名され、証明書をデバッグしていないことを確認するにはどうすればよいですか?Android APKがリリース証明書で署名されていることを確認するにはどうすればよいですか?

+5

私は、キーストアに対するAPKを検証します[スクリプト](https://raw.githubusercontent.com/johnnylambada/robospanner/master/apk/apk-validate)を書きました。 – JohnnyLambada

+0

あなたはあなたが持っている場合は答えを受け入れる。 –

+0

@JohnnyLambada Macでスクリプトを実行するにはどうすればよいですか? –

答えて

248

このコマンドを使用して、(CMDプロンプトでjavaの< JDK < binパスに行く)

$ jarsigner -verify -verbose -certs my_application.apk 

あなたは "CN = Androidのデバッグ" を参照してください場合は、これはの.apkが生成されたデバッグキーで署名されたことを意味しAndroid SDK (これは署名されていないことを意味します)によって、そうでなければCNのためのものが見つかります。詳細について は、以下を参照してください。http://developer.android.com/guide/publishing/app-signing.html

+0

2 diff apk files.soのコマンド実行の最後に確認されたjarというメッセージが表示され、混乱しました。しかし、それは1つのapkのためにCN = "アンドロイドのデバッグ"を与え、他のapkのために異なっています。knwは1が署名されています。 – iRunner

+0

@iRunnerデバッグキーまたはリアルキーのいずれかを使用してデバイスにインストールする前に、すべてのアプリを署名する必要があります。 – Chloe

+2

署名はどのように確認されますか?システムの信頼できるCAを使用しますか?または、これはjarファイルの整合性をチェックするためのツールにすぎませんか?ありがとうございました –

52

このコマンドを使用:の.apkが適切に署名されている場合は

$ jarsigner -verify my_signed.apk 

(Jarsignerからは、CMDプロンプトでのgotoのJava-> jdk-> binパスがあなたのJava binフォルダにあります)

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

ヨ:、Jarsignerからプリント

+9

デバッグとリリースのapkの両方が署名されているので、これは十分ではありません。 @ Anassの答えの詳細を確認してください。 – rpattabi

27

使用コンソールコマンド "をjarファイルを検証しました" ../sdk/build-tools/24.0.3/apksigner.batにapksignerが見つかりました。ビルドツールv。24.0.3以降のみ。

また、Googleドキュメントをお読みください。https://developer.android.com/studio/command-line/apksigner.html

+0

'%LOCALAPPDATA%\ Android \ sdk \ build-tools \ 25.0.3 \'(および私がインストールした他のすべてのビルドツールのバージョン)に 'apksigner'が見つかりました – Jon

+0

infoそれを見つける方法:http://stackoverflow.com/q/40004884/1747983 – Tilo

+2

ビルドツールのバージョン「26.0.0」では 'apksigner'がありません。 https://issuetracker.google.com/issues/62696222で追跡され、次のバージョンで修正される予定です。それまでの回避策は、 '25.0.3'の' apksigner'を使うことです。 – friederbluemle

関連する問題