web-dev-qa-db-ja.com

PlayStoreにリリースする前にAPKに署名する必要があるのはなぜですか?

市場にリリースする前にapkに署名することの重要性は何ですか?

20

アプリケーションに署名するためのAndroidドキュメント から:

Androidシステムでは、インストールされているすべてのアプリケーションに、アプリケーションの開発者が秘密鍵を保持している証明書でデジタル署名する必要があります。Androidシステムは、証明書を証明書として使用しますアプリケーションの作成者を識別し、アプリケーション間の信頼関係を確立する手段。証明書は、ユーザーがインストールできるアプリケーションを制御するためには使用されません。証明書は、認証局によって署名される必要はありません。これは完全に許可され、通常、 Androidアプリケーションが自己署名証明書を使用するため。

署名について理解するための重要なポイントAndroidアプリケーションは次のとおりです:

  • すべてのアプリケーションに署名する必要があります。署名されていない場合、システムはエミュレーターまたはデバイスにアプリケーションをインストールしません。
  • アプリケーションをテストおよびデバッグするために、ビルドツールは、Android SDKビルドツールによって作成された特別なデバッグキーでアプリケーションに署名します。
  • エンドユーザー向けにアプリケーションをリリースする準備ができたら、適切な秘密鍵でアプリケーションに署名する必要があります。 SDKツールによって生成されたデバッグキーで署名されたアプリケーションを公開することはできません。
  • 自己署名証明書を使用して、アプリケーションに署名できます。認証局は必要ありません。
  • システムは、インストール時にのみ署名者証明書の有効期限をテストします。アプリケーションのインストール後にアプリケーションの署名者証明書の有効期限が切れた場合、アプリケーションは引き続き正常に機能します。
  • 標準ツール(KeytoolおよびJarsigner)を使用して、キーを生成し、アプリケーションの.apkファイルに署名できます。
  • アプリケーションのリリースに署名した後、zipalignツールを使用して最終的なAPKパッケージを最適化することをお勧めします。

Androidシステムは、適切に署名されていないアプリケーションをインストールまたは実行しません。これは、Androidシステムが実行されている場所に関係なく、実際のデバイス上でも、エミュレータ。このため、エミュレータまたはデバイスでアプリケーションを実行またはデバッグする前に、アプリケーションの署名を設定する必要があります。

意味:

アプリケーション署名のいくつかの側面は、アプリケーションの開発方法に影響を与える可能性があります特に複数のアプリケーションをリリースする予定の場合

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

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

  • アプリケーションのモジュール性 – Androidシステムでは、アプリケーションが要求した場合、システムがそれらを処理するように、同じ証明書で署名されたアプリケーションを同じプロセスで実行できます。このようにして、アプリケーションをモジュールにデプロイし、ユーザーは必要に応じて各モジュールを個別に更新できます。

  • アクセス許可によるコード/データ共有 – Androidシステムは署名ベースのアクセス許可の実施を提供するため、アプリケーションは指定された証明書で署名された別のアプリケーションに機能を公開できます。同じ証明書で複数のアプリケーションに署名し、署名ベースの権限チェックを使用することにより、アプリケーションは安全な方法でコードとデータを共有できます。

署名戦略を決定する際のもう1つの重要な考慮事項は、アプリケーションの署名に使用するキーの有効期間を設定する方法です。

  • 単一のアプリケーションのアップグレードをサポートする場合は、キーの有効期間がそのアプリケーションの予想される寿命を超えていることを確認する必要があります。 25年以上の有効期間をお勧めします。キーの有効期限が切れると、ユーザーはアプリケーションの新しいバージョンにシームレスにアップグレードできなくなります。

  • 同じキーを使用して複数の異なるアプリケーションに署名する場合は、キーの有効期間が、将来スイートに追加される可能性のある依存アプリケーションを含む、すべてのアプリケーションのすべてのバージョンの予想寿命を超えていることを確認する必要があります。

  • アプリケーションをGoogle Playで公開する予定の場合、アプリケーションの署名に使用するキーには、2033年10月22日以降に終了する有効期間が必要です。GooglePlayはこの要件を適用して、ユーザーがアプリケーションをシームレスにアップグレードできるようにします新しいバージョンが利用可能です。

42
Shylendra Madda