17

Androidマーケットに公開するときにこれを行うことができるように、複数の証明書を使用してAPKに署名するにはどうすればよいですか?

バージョン1.0=>証明書Aで
署名バージョン2.0=>証明書AおよびBで
署名バージョン3.0=>証明書Bで署名

Androidマーケットは私にいくつかの希望を与えてくれますが、それをどうすればよいかわかりません。別の署名証明書を使用してアップロードすると、次のメッセージが表示されます。

「apkは、以前のバージョンと共通の少なくとも1つの証明書で署名する必要があります。」

動機:
Android用MotoDevStudioの一部としてAndroid署名ツールを使用してアプリを市場に公開しました。問題は、キー自体を処理し、キーを取得する方法(文書化されていない)がないことです。より制御しやすく、MotoDevStudioを使用しなくても使用できるキーストアと証明書を使用するように変更したいと思います。また、MotoDev Studioは、共有ライブラリなどの新機能からあなたを締め出すようです。

更新2011年5月3日:
MotoDev Studioの更新は実際には非常に迅速かつ迅速でしたが、アプリケーションの証明書を変更したい人のために、Googleが引き続き回避策を提供する必要があると思います。すべてのアプリケーションが同じ証明書を使用するように更新し、時間の経過とともに新しい証明書を作成し、場合によっては新しい証明書を作成して、アプリケーションのサポートと配布を他の人に渡すことができるようにします。

4

3 に答える 3

14

APKに複数回署名する場合は、そうしてください。
ただし、GooglePlayは複数の署名を持つAPKを受け入れないことに注意してください。

例えば。次のように使用して、コマンドラインからAPKに署名できます: aliasjarsigner
jarsigner -keystore original-keystore my-app-unsigned.apk key-alias

次に、2番目のキーでこれを繰り返します。
jarsigner -keystore new-signing-keystore my-app-unsigned.apk key-alias

後でzipalignを実行することを忘れないでください。
zipalign -v 4 my-app-unsigned.apk my-app.apk


MotoDevスタジオについての部分を読み直しました。その場合、通常どおり最初にMotoDevを使用してAPKに署名してから、上記のようにコマンドラインで新しいキーを使用して署名できます。

于 2010-05-21T16:55:01.617 に答える
4

@ddcruverのコメント(2010-06-05)と@cistearnsのコメント(2011-03-01)を見るまで、この投稿を見て本当に嬉しかったです。

ただし、実際には、説明する移行方法には重大なセキュリティ上の問題があり(期待どおりに機能する場合)、攻撃者がユーザーにアプリをインストールしてもらうことができれば、攻撃者がアプリを置き換えるのは非常に簡単です。

  • 証明書Aで署名されたアプリをリリースします。
  • 攻撃者はapkを取得し、さらに証明書Mで署名して、アプリを配布します。
  • 攻撃者は、証明書Mで署名された悪意のあるアプリを解放して、自分のアプリを置き換え、保存している可能性のあるデータにアクセスすることができます。

通常、攻撃者が何かを置き換えようとした場合、元のデータが削除されない限り、インストールは拒否されます。削除された時点で、データは消去されます。

一方、キー/証明書を移行するための有効なユースケースはまだいくつかあります。キーの更新、別の開発者への引き渡しなどです。

これは、古いキーから新しいキーへの移行を承認することで、より安全に行うことができます。Androidプロジェクトの問題をご覧ください。

于 2012-05-12T22:23:28.520 に答える
2

私は今日問題を抱えていました、そしてここに私がしたことがあります:

  1. 古いmotodev.keystoreファイルをバックアップします
  2. 最近のmotodevスタジオ(2.0.1)を使用して、motodev.keystoreのパスワードを変更します(キーストアをインポートできるmotodevビューでパスワードを変更します)
  3. javaにバンドルされているkeytool.exeプログラムを使用して、motodevキーストアファイル(タイプJCEKS)を通常のandroidキーストアファイル(タイプJKS)に変換します。

keytool -importkeystore -srckeystore motodev.keystore -srckeystoretype JCEKS -destkeystore android.keystore -destkeystoretype JKS

これで、android.keystoreファイルをGoogle Eclipseプラグインで使用して、アプリケーションを署名済みAPKにエクスポートできます。

于 2011-05-27T21:58:36.883 に答える