web-dev-qa-db-ja.com

キーストアとキーエイリアス

私はアプリをエクスポートする過程にあり、キーストアとキーエイリアスに非常に興味があります。私はそれらが何のためにあるのか、またはいくつ作成する必要があるのか​​本当に分かりません(アプリごとに1つかもしれません)。これらのキーに関連する情報をいただければ幸いです。ありがとう

34

これは基本的に、アプリで自分自身を識別する方法です。デバッグキーと署名キーがあり、後者はPlayストアにAPKをアップロードしてアプリを公開する必要があります。キーエイリアスは、特定の証明書を指す単なる一般的な名前です。リリースごとに作成することも、すべてのアプリに同じものを使用することもできます。アプリごとに1つ作成し、複数のコピーを必ずバックアップすることをお勧めします。 3つをシステムに、1つをDropboxに、もう1つを外部のどこかに保管します。そのキーストアファイルを紛失した場合、それを取得したり、アプリケーションの将来のバージョンを公開したりする方法はまったくありません。 この質問 は非常に便利です

編集:開発者のサイトの「App-Signing」セクションでは、すべてのアプリで同じ証明書を使用することを実際に提案しています

一般に、すべての開発者に推奨される戦略は、アプリケーションの予想される寿命を通して、すべてのアプリケーションに同じ証明書で署名することです。そうする理由はいくつかあります...

アプリケーションのアップグレード–ユーザーが新しいバージョンにシームレスにアップグレードできるようにするには、アプリケーションの更新をリリースするときに、同じ証明書または証明書のセットで更新に署名し続ける必要があります。システムがアプリケーションの更新をインストールするとき、新しいバージョンの証明書と既存のバージョンの証明書を比較します。証明書データと順序の両方を含む証明書が完全に一致する場合、システムは更新を許可します。一致する証明書を使用せずに新しいバージョンに署名する場合は、アプリケーションに別のパッケージ名も割り当てる必要があります。この場合、ユーザーは新しいバージョンを完全に新しいアプリケーションとしてインストールします。

アプリケーションのモジュール性– Androidシステムは、アプリケーションが要求する場合、同じ証明書で署名されたアプリケーションが同じプロセスで実行できるようにし、システムがそれらを単一のアプリケーションとして扱うようにします。アプリケーションをモジュールにデプロイする方法、および必要に応じてユーザーは各モジュールを個別に更新することができます。許可によるコード/データ共有– Androidシステムは署名ベースの許可の実施を提供しますアプリケーションは、特定の証明書で署名された別のアプリケーションに機能を公開できます。同じ証明書で複数のアプリケーションに署名し、署名ベースの権限チェックを使用することにより、アプリケーションは安全な方法でコードとデータを共有できます。

36
Jade Byfield