2012-03-02 3 views
3

タイトルが説明するように、作成されたアプリ(.apk)がデバッグ証明書またはエクスポート証明書で署名されていることを知る方法(コード)があるかどうかを知りたいと思いますか?私は証明書の種類に応じていくつかの機能を有効/無効にできるように、私のアプリの中でこれをチェックしたいと思います。デバッグまたはエクスポート証明書でアプリケーションが署名されているかどうかをプログラムで確認するにはどうすればよいですか?

デベロッパーコンソールからマーケットにアプリをアップロードした時点でGoogleがこの情報をどのように確認するのだろうか?

どのような提案/コードもありがとうございます。

+0

の可能性のある重複した[APKが署名または "デバッグビルド" であるかどうかを確認する方法は?](http://stackoverflow.com/questions/7085644/how-to-check-if-apk-is -signed-or-debug-build) – grebulon

答えて

1

あなたが解決しようとしていることを説明するこのリソースが見つかりました。このページでは、コード内のキーストアに関する情報を取得する方法について説明します。

http://daniel-codes.blogspot.com/2011/04/detecting-keystore-signature-in-code.html

+0

これは良いアイディアだと思われる – waqaslam

+0

404 - 見つかりません – Hamidreza

+0

この回答は、それを行う方法の例を示しています:http://stackoverflow.com/a/11535593/2603965 – grebulon

0

証明書を使ってAndroidマーケットにアプリを展開することはできます。

AMは、最初のAPKをアップロードしたときに使用したのと同じ証明書で署名されていないと、APKを拒否します。

公開鍵についての情報は、javax.security.auth.Subjectパッケージから取得できるようです(getPublicCredentials()メソッドを試してください)。私はそれを自分で使っていません。

+0

はい、同じ証明書でアプリケーションを更新する必要があることは分かります。しかし、私が探しているのは、名前、会社、組織、isDebugなどのアプリ内の証明書情報です。 – waqaslam

2

I /無効デバッグログを有効にする

final PackageInfo info = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0); 
ApplicationUtils.DEBUG_ENABLED = (info.applicationInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; 

を使用しています。

+0

このパッケージには「ApplicationUtils」が含まれていますか? – waqaslam

+0

'ApplicationUtils'は、' Application.onCreate'で初期化された静的変数/関数の独自のクラスです。 – techiServices

+1

APKがデバッグキーを使用してビルドされているときに、デバッグフラグが自動的に設定されるため、マニフェストにAPKを設定する必要はありません。 – techiServices

0

デバッグキーの会社名はAndroid Debugです。

jarsigner -verbose -certs -verifyをデバッグタグと署名付きapkに対して実行します。あなたは、デバッグAPKのCNフィールドはAndroidデバッグと呼ばれています。あなたの署名付きapkの場合、それはキー署名者の名前です。

これはおそらく、市場にアップロードする際にGoogleや他の市場がキーを確認する方法です。他の人が言ったように、あなたは市場にデバッグキーで署名されたアプリをアップロードすることができないので、なぜこれをチェックする必要があるのか​​わかりません。

+0

私は言ったように、私は市場でのアップロードや更新について話しているわけではありません。私はちょうどコードでこれらのフィールドを知りたがっています。可能性はありますか? – waqaslam

関連する問題