Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

リリースの準備

アプリのリリースを準備するにあたっては、アプリのリリース バージョンを設定、ビルド、テストする必要があります。設定タスクは単純で、アプリの最適化に役立つ基本的なコードのクリーンアップやコードの変更などのタスクが含まれます。ビルドプロセスはデバッグのビルドプロセスとほぼ同じで、JDK および Android SDK ツールを使用して実行できます。テストタスクは最終チェックとして行い、アプリが実際の条件下で想定どおりに動作するかどうかを確認します。リリースに向けたアプリの準備が完了すると、署名付きの APK ファイルができあがります。このファイルは、ユーザーに直接配信することも、Google Play などのアプリ マーケットプレイスを通じて配信することもできます。

このドキュメントでは、リリースに向けてアプリを準備する際に必要となる主要なタスクの概要について説明します。このドキュメントで説明するタスクは、リリース方法やユーザーへの配信方法にかかわらず、すべての Android アプリに適用できます。Google Play でアプリをリリースする場合は、Google Play のリリース チェックリストもご覧ください。

注: このドキュメントで説明しているタスクを実行する前に、アプリの機能、パフォーマンス、安定性が、設定されたリリース条件をすべて満たしていることを確認してください。

準備プロセスが開発プロセスにどのように当てはまるのかを示す図

図 1: リリースの準備は必須の開発タスクであり、公開プロセスの第一歩です

概要

アプリをユーザーにリリースするには、ユーザーが Android デバイスにインストールして実行できるリリース用パッケージを作成する必要があります。リリース用パッケージには、デバッグ用の APK ファイルと同じコンポーネント(コンパイル済みのソースコード、リソース、マニフェスト ファイルなど)を含めます。また、同じビルドツールでビルドします。ただし、デバッグ用の APK ファイルと異なり、リリース用の APK ファイルはデベロッパー自身の証明書で署名され、zipalign ツールで最適化されます。

リリース用アプリを準備するために実行する 5 つのタスクを示す

図 2. リリース用アプリを準備する際に行う 5 つの主要タスク

Android Studio を使用してアプリをビルドする場合は、署名タスクと最適化タスクは通常シームレスに行われます。たとえば、Android Studio で Gradle ビルドファイルを使用して、アプリを一度にコンパイル、署名、最適化できます。また、コマンドラインでビルドする場合は、Gradle ビルドファイルを設定して同じことができます。Gradle ビルドファイルの使用方法については、ビルドシステムのガイドをご覧ください。

リリース用アプリを準備するには、通常、5 つの主要タスクを実行します(図 2 を参照)。 アプリのリリース方法に応じて、主要タスクにはそれぞれ細かいタスクが含まれます。たとえば、Google Play でアプリをリリースする場合、リリース用アプリを設定する際に、マニフェストに特別なフィルタリング ルールを追加することがあります。また、Google Play の公開ガイドラインを満たすには、リリース用の素材を収集する際に、スクリーンショットの準備やプロモーション テキストの作成が必要になります。

通常、図 2 にリスト表示されているタスクは、アプリのデバッグとテストを十分に行った後で実行します。Android SDK には、Android アプリのテストとデバッグに役立つツールがいくつか用意されています。詳しくは、デベロッパー ガイドのデバッグテストのセクションをご覧ください。

資料とリソースを収集する

リリース用アプリの準備を始めるにあたっては、いくつかの補助アイテムを収集する必要があります。たとえば、少なくともアプリおよびアプリアイコンに署名するための暗号鍵は必要です。場合によっては、エンドユーザー使用許諾契約も用意します。

暗号鍵

Android システムにインストールするアプリは、アプリのデベロッパーが所有する証明書(デベロッパーが秘密鍵を保有する証明書)でデジタル署名されている必要があります。Android システムはこの証明書を使用してアプリの作成者を識別し、アプリ間の信頼関係を確立します。署名に使用する証明書は、認証局によって署名されている必要はありません。Android システムでは、自己署名証明書によるアプリの署名が許可されています。証明書の要件については、アプリに署名するをご覧ください。

重要: アプリは、有効期間の終了日が 2033 年 10 月 22 日以降の暗号鍵で署名されている必要があります。

他にも、アプリでアクセスするサービスや使用するサードパーティのライブラリにおいて、デベロッパーの秘密鍵に基づくキーの使用が必要な場合は、そのリリースキーも取得する必要があります。

アプリアイコン

アプリのアイコンが準備されていること、そしてそのアイコンが推奨アイコン ガイドラインに準拠していることを確認します。アプリのアイコンは、ユーザーがデバイスのホーム画面やランチャー ウィンドウでアプリを探すときに役立ちます。アプリのアイコンは、[アプリの管理] や [マイ ダウンロード] などにも表示されます。また、Google Play などの公開サービスでもアイコンがユーザーに表示されます。

注: Google Play でアプリをリリースする場合は、アイコンの高解像度バージョンを作成する必要があります。詳しくは、アプリの画像および映像の説明をご覧ください。

エンドユーザー使用許諾契約

アプリのエンドユーザー使用許諾契約(EULA)を準備することを検討してください。EULA は、許諾元の関係者、組織、知的所有権の保護に役立つため、アプリとともに提供することをおすすめします。

その他の資料

アプリを宣伝するための宣伝素材とマーケティング素材を準備する必要がある場合もあります。 たとえば、Google Play でアプリをリリースする場合は、プロモーション テキストの準備と、アプリのスクリーンショットの作成が必要になります。詳しくは、アプリの画像および映像の説明をご覧ください。

リリース用アプリを設定する

補助資料をすべて収集したら、リリース用アプリの設定を開始できます。アプリをリリースする前に、ソースコード、リソース ファイル、アプリのマニフェストに対していくつかの設定変更を加えることをおすすめします。このセクションでは、そうした設定の概要について説明します。 ここで説明する設定変更のほとんどは必須ではありませんが、コーディングにおける推奨事項であり、実装することをおすすめします。この種の設定変更は、開発プロセスの中ですでに実施されている場合もあります。

適切なパッケージ名を選択する

アプリの開発から配信までのライフサイクル全体に適したパッケージ名を選択します。アプリをユーザーに配信した後でパッケージ名を変更することはできません。パッケージ名はアプリのマニフェスト ファイルで設定できます。詳しくは、package 属性のドキュメントをご覧ください。

ロギングとデバッグをオフにする

リリース用アプリをビルドする前に、ロギングが停止されていることと、デバッグ オプションが無効になっていることを確認します。ロギングを停止するには、ソースファイル内の Log メソッド呼び出しを削除します。デバッグを無効にするには、マニフェスト ファイルで <application> タグから android:debuggable 属性を削除するか、マニフェスト ファイルで android:debuggable 属性を false に設定します。プロジェクト内に作成されたログファイルや静的テストファイルも削除します。

また、コードに追加した Debug トレース呼び出し(startMethodTracing()stopMethodTracing() メソッドの呼び出しなど)もすべて削除する必要があります。

重要: 有料コンテンツを表示するために WebView を使用している場合や、JavaScript インターフェースを使用している場合は、アプリのデバッグを必ず無効にしてください。デバッグが有効になっていると、ユーザーは Chrome のデベロッパー ツールを使用してスクリプトの注入とコンテンツの抽出を行えるからです。デバッグを無効にするには、WebView.setWebContentsDebuggingEnabled() メソッドを使用します。

プロジェクト ディレクトリをクリーンアップする

プロジェクトをクリーンアップして、Android プロジェクトで説明されているディレクトリ構造になっていることを確認します。プロジェクト内に不明なファイルや孤立したファイルが残っていると、アプリのコンパイルの妨げになることや、アプリの予期しない動作を引き起こすことがあります。最低限、以下のクリーンアップ タスクを実行してください。

  • jni/lib/src/ の各ディレクトリの内容を確認します。jni/ ディレクトリには、Android NDK に関連するソースファイル(.c.cpp.h.mk ファイルなど)のみが含まれている必要があります。lib/ ディレクトリには、サードパーティのライブラリ ファイルや非公開のライブラリ ファイルのみが含まれている必要があります。これには、ビルド済みの共有ライブラリや静的ライブラリ(.so ファイルなど)も含まれます。src/ ディレクトリには、アプリのソースファイル(.java および .aidl ファイル)のみが含まれている必要があります。src/ ディレクトリに .jar ファイルが含まれていてはなりません。
  • アプリが使用しない非公開データまたは専有データのファイルがプロジェクト内にないかチェックし、見つかったら削除します。たとえば、プロジェクトの res/ ディレクトリを確認し、現在使用していない古いドローアブル ファイル、レイアウト ファイル、値ファイルが見つかったら削除します。
  • lib/ ディレクトリにテスト ライブラリがないかチェックし、アプリで使用されていなければ削除します。
  • assets/ ディレクトリと res/raw/ ディレクトリの内容を確認し、リリース前に更新または削除する必要がある未加工のアセット ファイルや静的ファイルがないかチェックします。

マニフェストおよび Gradle ビルド設定を確認およびアップデートする

次のマニフェスト ファイルとビルドファイルの項目が正しく設定されていることを確認します。

  • <uses-permission> 要素

    アプリに関連する必要な権限のみを指定する必要があります。

  • android:icon 属性および android:label 属性

    各属性(<application> 要素内にあります)の値を指定する必要があります。

  • android:versionCode 属性および android:versionName 属性

    各属性(<manifest> 要素内にあります)の値を指定することをおすすめします。詳細については、アプリのバージョニングを行うをご覧ください。

Google Play 上でアプリをリリースする場合は、マニフェスト ファイル内やビルドファイル内で設定できる要素がほかにもあります。たとえば、<uses-sdk> 要素内にある android:minSdkVersion 属性および android:targetSdkVersion 属性などです。これらの属性やその他の Google Play の設定については、Google Play 上のフィルタをご覧ください。

互換性の問題に対処する

Android には、アプリをさまざまなデバイスで使用するためのツールや手法がいくつか用意されています。できるだけ多くのユーザーがアプリを利用できるように、以下のタスクの実施を検討してください。

  • マルチ画面構成のサポートを追加する

    マルチ画面をサポートする際のベスト プラクティスに準拠していることを確認します。複数の画面設定をサポートすることにより、Android でサポートされるすべての画面サイズで正しく動作し、適切に表示されるアプリを作成できます。

  • Android タブレット デバイス向けにアプリを最適化する

    アプリが Android 3.0 よりも前のデバイス向けに設計されている場合は、Android 3.0 向けにアプリを最適化するに記載されているガイドラインとベスト プラクティスに準拠することで、Android 3.0 デバイスに対応できるようにします。

  • サポート ライブラリの使用を検討する

    アプリが Android 3.x 搭載デバイス向けに設計されている場合は、アプリのプロジェクトにサポート ライブラリを追加することで、古いバージョンの Android に対応できるようにします。サポート ライブラリが提供する静的サポート ライブラリを Android アプリに追加することにより、古いプラットフォーム バージョンでは利用できない API の使用や、フレームワーク API に含まれていないユーティリティ API の使用が可能になります。

サーバーとサービスの URL をアップデートする

アプリがリモート サーバーまたはサービスにアクセスする場合は、テスト用の URL またはパスではなく、サーバーまたはサービスの本番用 URL またはパスを使用していることを確認します。

ライセンスを実装する(Google Play でリリースする場合)

Google Play で有料アプリをリリースする場合は、Google Play ライセンスのサポートを追加することを検討します。ライセンスを使用すると、現在のユーザーがアプリを購入済みかどうかに基づいてアプリへのアクセスを制御できます。Google Play を通じてアプリをリリースする場合であっても、Google Play ライセンスの使用は任意です。

Google Play ライセンス サービスの詳細と、アプリ内でライセンスを使用する方法については、アプリのライセンス設定をご覧ください。

リリース用アプリをビルドする

アプリの設定が完了したら、ビルドして、最適化済みの署名付きリリース用 APK ファイルを作成できます。JDK には、APK ファイルに署名するためのツール(Keytool と Jarsigner)が含まれています。Android SDK には、APK ファイルをコンパイルおよび最適化するためのツールが含まれています。Android Studio を使用する場合、またはコマンドラインから Gradle ビルドシステムを使用する場合は、ビルドプロセス全体を自動化できます。 Gradle ビルドの設定方法の詳細については、Gradle ビルドの設定の説明をご覧ください。

Android Studio を使用してビルドする

Android Studio と統合された Gradle ビルドシステムを使用すると、秘密鍵で署名された最適化済みリリース用 APK ファイルをビルドできます。Android Studio を使用してビルドをセットアップして実行する方法については、Android Studio からビルドと実行を行うをご覧ください。

ビルドプロセスは、アプリの署名向けに適した証明書と秘密鍵があることを前提としています。適切な証明書と秘密鍵がない場合は、Android Studio で生成できます。署名プロセスの詳細については、アプリに署名するをご覧ください。

外部サーバーおよびリソースを準備する

アプリがリモート サーバーに依存している場合は、そのサーバーが安全であることと、本番環境用に設定されていることを確認します。これは、アプリにアプリ内課金を実装していて、リモート サーバー上で署名検証ステップを実行する場合、特に重要です。

また、アプリがリモート サーバーまたはリアルタイム サービス(コンテンツ フィードなど)からコンテンツを取得する場合は、最新の本番用コンテンツを提供していることを確認してください。

リリース用アプリをテストする

アプリのリリース バージョンをテストし、実際のデバイスおよびネットワーク条件下でアプリが正常に動作することを確認します。理想としては、最低でも携帯サイズのデバイス 1 台とタブレット サイズのデバイス 1 台でアプリをテストして、ユーザー インターフェース要素が適切なサイズで表示されること、そしてアプリのパフォーマンスとバッテリー効率が許容範囲内であることを確認します。

テストを開始する際は、テストする項目についてご確認ください。この記事には、テスト時に考慮する必要がある Android の一般的な状況がまとめられています。テストが完了し、アプリのリリース バージョンが正常に動作することが確認できたら、アプリをユーザーにリリースできます。詳しくは、アプリをユーザーにリリースするをご覧ください。Google Play でアプリを公開する場合は、Google Play のリリース チェックリストをご覧ください。