page.title=公開の準備 @jd:body

アプリケーションの公開とは、アプリケーションをテストして適切にパッケージし、Android 搭載の携帯端末のユーザーが利用できる状態にすることです。

アプリケーションを公開して Android 搭載デバイスにインストールするには、いくつかの作業を行ってアプリケーションの準備を整える必要があります。このドキュメントでは、アプリケーションのリリースを成功させるための準備における、重要なチェックポイントを説明しています。

アプリケーションを Android マーケットに公開する場合は、アプリケーションの具体的な準備要件について Android マーケットでの公開 もご覧ください。

アプリケーションを公開する方法の一般的な情報については、Publishing Your Applications のドキュメントをご覧ください。

アプリケーションのリリースを準備する前の作業:

  1. アプリケーションを実際のデバイスで徹底的にテストする
  2. アプリケーションへのエンド ユーザー ライセンス契約の追加を検討する
  3. アプリケーションのマニフェストにアイコンとラベルを指定する
  4. ロギングとデバッグを無効にして、データとファイルをクリーンアップする

アプリケーションの最終コンパイルを実行する前の作業:

  1. アプリケーションでバージョン管理を行う
  2. 適切な暗号化キーを取得する
  3. アプリケーションが MapView 要素を使用している場合は、Maps API キーに登録する

アプリケーションのコンパイル

アプリケーションをコンパイルした後の作業:

  1. アプリケーションに署名する
  2. コンパイルしたアプリケーションをテストする

アプリケーションのリリースを準備する前の作業

1. アプリケーションを実際のデバイスで徹底的にテストする

アプリケーションをできる限り広範に徹底的にテストすることが重要です。この作業を支援するため、Android では多数のテスト用クラスとツールを用意しています。{@link android.app.Instrumentation Instrumentation} を使用して JUnit およびその他のテスト ケースを実行できます。また、UI/Application Exerciser Monkey などのテスティング ツールを使用できます。

2. アプリケーションへのエンドユーザー ライセンス契約の追加を検討する

個人、組織、知的財産を保護するため、アプリケーションのエンドユーザー ライセンス契約(EULA)を付加することを推奨します。

3. アプリケーションのマニフェストにアイコンとラベルを指定する

アプリケーションのマニフェストに指定するアイコンとラベルは、アプリケーションのアイコンと名前としてユーザーに表示されるため、重要な要素です。アイコンとラベルは、デバイスの [[]ホーム] 画面や、[[]アプリケーションの管理]、[[]マイダウンロード] などに表示されます。また、公開サービスによってアイコンとラベルがユーザーに表示される可能性もあります。

アイコンとラベルを指定するには、android:iconandroid:label 属性をマニフェストの <application> 要素に定義します。

アイコンのデザインについては、組み込みの Android アプリケーションのスタイルとできるだけ統一感を持たせてください。

4. ロギングとデバッグを無効にして、データとファイルをクリーンアップする

リリース時にはデバッグ機能を無効にし、デバッグおよびその他の不要なデータ/ファイルをアプリケーション プロジェクトから削除してください。

アプリケーションの最終コンパイルを実行する前の作業

5. アプリケーションでバージョン管理を行う

アプリケーションをコンパイルする前に、アプリケーションにバージョン番号を定義しておく必要があります。定義するには、アプリケーションのマニフェスト ファイルの <manifest> 要素の android:versionCodeandroid:versionName 属性の両方に適切な値を指定します。バージョン番号の設定は、全体的なアプリケーションアップグレードの計画を考慮して、慎重に検討してください。

これまでにリリースしたバージョンがある場合、最新のアプリケーションのバージョン番号を旧バージョンから増加させる必要があります。アプリケーションのマニフェスト ファイルの <manifest> 要素の android:versionCodeandroid:versionName 属性の両方を適切な値を使用して増加する必要があります。

アプリケーションのバージョン情報を定義する方法は、Versioning Your Applicationsをご覧ください。

6. 適切な暗号化キーを取得する

ここまで準備作業をすべて読んで実行していれば、アプリケーションはコンパイルされ、署名の準備ができています。.apk の内部では、アプリケーションは適切にバージョン管理されており、上記のように余分なファイルや非公開データは削除されています。

アプリケーションに署名する前に、適切な非公開キーがあることを確認する必要があります。非公開キーを取得(または生成)する方法については、適切な非公開キーの取得をご覧ください。

適切な非公開キーを取得(または生成)したら、キーを使用して次の手順を実行します:

7. アプリケーションが MapView 要素を使用している場合は、Maps API キーに登録する

アプリケーションが Mapview 要素を使用する場合、アプリケーションを Google Maps サービスで登録し、Maps API キーを取得する必要があります。その後、MapView で Google Maps からデータを取得できるようになります。この処理を行うため、Maps サービスに署名証明書の MD5 フィンガープリントを提出します。

開発中は、SDK ツールが生成したデバッグ キーを登録して一時的な Maps API キーを取得できます。ただし、アプリケーションを公開する前には、非公開キーに基づく新しい Maps API キーで登録する必要があります。

アプリケーションが MapView 要素を使用する場合、次の点を理解することが重要です:

  1. アプリケーションをリリース用にコンパイルする前に、Maps API キーを取得する必要があります。このキーを、アプリケーションのレイアウト ファイルにある各 MapView 要素の、android:apiKey という特殊な属性に追加する必要があるからです。MapView オブジェクトをコードから直接インスタンス化している場合は、Maps API キーをコンストラクタのパラメータとして渡す必要があります。
  2. アプリケーションの MapView 要素が参照する Maps API キーは Google Maps 内で登録され、アプリケーションの署名に使用される証明書に登録される必要があります。これはアプリケーションを公開する際に特に重要です。MapView 要素は、アプリケーションの署名に使用されるリリース証明書に登録されるキーを参照する必要があります。
  3. SDK ツールが生成したデバッグ証明書を登録して一時的な Maps API キーを取得している場合、リリース証明書を登録して新しい Maps API キーを取得する必要があります。また、MapView 要素を変更して、デバッグ証明書と関連付けられたキーではなく、新しいキーを参照させることも忘れないでください。このようにしないと、MapView 要素には Maps データをダウンロードする許可が与えられません。
  4. アプリケーションの署名に使用する非公開キーを変更するには、Google Maps サービスから新しい Maps API キーを取得する必要があります。新しい Maps API キーを取得してすべての MapView 要素に適用してください。以前のキーを参照する MapView 要素には、Maps データをダウンロードする許可が与えられません。

署名と非公開キーについては、アプリケーションへの署名をご覧ください。

アプリケーションのコンパイル

前述のセクションで説明したアプリケーションの準備ができたら、アプリケーションをリリース用にコンパイルできます。

アプリケーションをコンパイルした後の作業

8. アプリケーションに署名する

非公開キーを使用してアプリケーションに署名します。アプリケーションに正しく署名することは、非常に重要です。詳細は、アプリケーションへの署名をご覧ください。

9. コンパイルして署名したアプリケーションのテスト

コンパイルしたアプリケーションをリリースする前に、対象とする携帯端末(および可能ならば対象ネットワーク)上で徹底的にテストする必要があります。特に、UI 部分の MapView 要素がマップ データを正常に受信していることを確認してください。正常に受信していない場合、Maps API キーに登録するに戻って問題を解決してください。アプリケーションがサーバー側サービスを正しく利用できること、指定データまたは使用データを正しく処理できること、そして認証要件を正常に処理できることも確認してください。

これらのテストが完了したら、アプリケーションを携帯端末ユーザーに公開する準備が整ったと言えるでしょう。