これは一般的な質問ですが、特にAndroidでの使用に興味があります。キーストアファイルとは何ですか?それは何に使用されますか?
複数のAndroidアプリケーションが同じキーストアを使用してアプリケーションに署名することはできますか(.apkに「署名する」とはどういう意味ですか)、これの意味(ある場合)は何ですか?
これは一般的な質問ですが、特にAndroidでの使用に興味があります。キーストアファイルとは何ですか?それは何に使用されますか?
複数のAndroidアプリケーションが同じキーストアを使用してアプリケーションに署名することはできますか(.apkに「署名する」とはどういう意味ですか)、これの意味(ある場合)は何ですか?
回答:
私が提供する答えは、キーストアファイルは、求めている誰に対しても自分を認証することです。.apkファイルへの署名だけに限定されず、個人証明書の保存、送信するデータの署名、さまざまな認証に使用できます。
あなたがそれをAndroidのために何をするか、そしておそらくあなたがAPKに署名することについて言及して以来あなたが探しているものに関しては、それはあなたの証明書です。資格情報を使用してアプリケーションをブランディングしています。同じキーで複数のアプリケーションをブランド化できます。実際、1つの証明書を使用して、作成する複数のアプリケーションをブランド化することをお勧めします。どのアプリケーションが自分のものかを追跡するのが簡単です。
あなたが意味するところが何を意味するのか分かりません。証明書の所有者以外はアプリケーションを更新できないことを意味すると思います。つまり、実際にリリースすると、アプリケーションの署名に使用した証明書を失い、更新をリリースできなくなるため、その証明書を安全に保管し、必要に応じてバックアップしてください。
しかし、APKに署名して実際にリリースする以外に、必要に応じて、SSLを介してデバイスをサーバーに対して認証することもできます(Androidにも関連しています)。
Androidマーケットでは、公開/秘密鍵メカニズムを使用して、公開するすべてのアプリに証明書で署名する必要があります(証明書は秘密鍵で署名されています)。これは、特にリモート攻撃者が悪意のある更新をアプリケーションにプッシュして市場に出すことを防ぐセキュリティの層を提供します(すべての更新は同じキーで署名されている必要があります)。
Androidデベロッパーサイトのアプリ署名ガイドから:
一般に、すべての開発者に推奨される戦略は、アプリケーションの予想される寿命を通じて、すべてのアプリケーションに同じ証明書で署名することです。そうすべき理由はいくつかあります...
同じキーを使用すると、いくつかの利点があります-1つは、同じキーで署名されたアプリケーション間でデータを共有するのが簡単になることです。もう1つは、同じキーで署名された複数のアプリを同じプロセスで実行できるため、開発者はより「モジュラー」アプリケーションを構築できるということです。
署名プロセスの詳細については、Androidの公式ドキュメント(http://developer.android.com/guide/publishing/app-signing.html)を参照してください。
はい、同じキーストアで複数のアプリケーションに署名できます。ただし、1つの重要なことを覚えておく必要があります。Playストアでアプリを公開する場合は、デバッグ以外の証明書で署名する必要があります。また、このアプリのアップデートを公開する場合、APKの署名に使用されるキーストアは同じである必要があります。そうしないと、更新を投稿できません。
keytoolの全体的なアイデアは、そのAPKのソースを示す一意の識別子でAPKに署名することです。(私が理解しているものからの)キーストアファイルはデバッグに使用されるため、本番用のAPKに署名することなく、apkがkeytoolの機能を備えています。つまり、デバッグの目的で、単一のキーストアで複数のapkに署名できるはずです。ただし、本番環境に移行する際には、作成する各APKの識別子として一意のキーツールが必要になることを理解してください。
keytool
あなたが何を意味するのか考えていません。keytoolは、キーストアの生成に使用されるJavaプログラムです。