ヘッダーをスキップ

Oracle® Fusion Middleware Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.0.1 E57592-01 |
| 目次

前 | 次 |

# 19 モバイル・アプリケーションのデプロイ

この章では、テストと公開のためのモバイル・アプリケーションのデプロイ方法について説明します。

この章の内容は次のとおりです。

- 第19.1項「モバイル・アプリケーションのデプロイメントの概要」

- 第19.2項「デプロイメント・プロファイルでの作業」

- 第19.3項「Androidアプリケーションのデプロイ」

- 第19.4項「iOSアプリケーションのデプロイ」

- 第19.5項「機能アーカイブ・ファイル(FAR)のデプロイ」

- 第19.6項「モバイル・アプリケーション・アーカイブ・ファイルの作成」

- 第19.7項「署名されていないデプロイメント・パッケージの作成」

- 第19.8項「コマンド行からのモバイル・アプリケーションのデプロイ」

## 19.1 モバイル・アプリケーションのデプロイメントの概要

エンド・ユーザーに配布するためにアプリケーションを公開する前に、シミュレータまたは実際のデバイスでこれをテストして、その動作と使いやすさを評価する必要があります。MAFでは、iOSアプリケーション・バンドル(`.ipa`または`.app`ファイル)またはAndroidアプリケーション・パッケージ(`.apk`)・ファイルをプラットフォームに適したデバイスまたはシミュレータにデプロイすることで、App Store (Apple iTunes)またはアプリケーション・マーケットプレイス(Google Playなど)に公開する前にアプリケーションをテストできます。

### 19.1.1 MAFデプロイメント・オプション

MAFでは、プロジェクトをデプロイする場合、プラットフォーム固有のテンプレート・アプリケーションを一時的な場所にコピーした後、MAFプロジェクト内で定義されたコード、リソースおよび構成を使用して、そのアプリケーションを更新します。その後、MAFでは、ターゲット・プラットフォームのツールを使用して、アプリケーションをビルドおよびデプロイします。ダウンロード・サイトまたはアプリケーション・マーケットプレイス(Apple App StoreやGoogle Playなど)から入手可能なプラットフォーム固有のパッケージ(.ipa、Androidの場合は.h)として、モバイル・アプリケーションをデプロイできます。テストおよびデバッグの目的で、シミュレータまたはデバイスにデプロイできます。ビュー・コントローラ・プロジェクトを機能アーカイブ(FAR)としてデプロイすることで、アプリケーション機能を再利用できます。また、モバイル・アプリケーション・アーカイブ(`.maa`)ファイルとしてデプロイすることで、モバイル・アプリケーション全体を再利用することもできます。

#### 19.1.1.1 プロジェクト・ライブラリのデプロイメント

「ライブラリとクラスパス」ダイアログ(図19-1を参照)を使用してプロジェクトに宣言するライブラリは、そのプロジェクトのデプロイメント・アーティファクトに含まれます。このダイアログにより、アプリケーション機能は実行時にこれらのライブラリにアクセスすることが可能になります。

図19-1 プロジェクトへのライブラリの追加

#### 19.1.1.2 JVM 1.4ライブラリのデプロイメント

AndroidアプリケーションとiOSアプリケーションのどちらの場合も、それぞれのMAFのデプロイメントには、デプロイメントのタイプ(リリースまたはデバッグ)とデプロイメント・ターゲット(シミュレータまたは実際のデバイス)の組合せに固有の異なるライブラリのセットが含まれます。さらに、それぞれのライブラリ・セットには、JVM 1.4のJARファイルが含まれます。アプリケーションのバインディング・レイヤーは、Objective-Cライブラリのコレクションであるこの仮想マシン内にあります。たとえば、MAFは、iOSシミュレータをターゲットとするデバッグ・デプロイメントに対して、JVM 1.4 JARファイルと一連のライブラリをデプロイしますが、実際のiOSデバイスをターゲットとするデバッグ・デプロイメントに対しては、異なるJVM 1.4 JARファイルと一連のライブラリをデプロイします。

## 19.2 デプロイメント・プロファイルでの作業

デプロイメントのためにモバイル・アプリケーションを準備する際は、最初に、プラットフォーム固有のデプロイメント・プロファイルを作成します。デプロイメント・プロファイルでは、iOSデバイス、Androidデバイス、iOSシミュレータまたはAndroidエミュレータにデプロイするアプリケーションをアーカイブにパッケージ化する方法を定義します。デプロイメント・プロファイルは次を行います。

- アーカイブの形式と内容を指定します。iOSのアーカイブ形式は、アプリケーション・バンドルとして知られている`.ipa`ファイルになります。Androidのアーカイブ形式は、Androidアプリケーション・パッケージ(`.apk`)・ファイルになります。

  注意: `.apk`ファイルはアーカイブ互換です。つまり、WinZipまたは7-Zipのようなアーカイブ・ツールを使用して、その内容を表示できます。

- アーカイブ・ファイルへのパッケージ対象となるソース・ファイル、デプロイメント・ディスクリプタおよびその他の補助ファイルをリストします。

- 作成されるアーカイブ・ファイルのタイプおよび名前を記述します。

- 依存情報、プラットフォーム固有の指示およびその他の情報を示します。

### 19.2.1 デプロイメント・プロファイルの作成方法

第3.2.2.3項「自動的に生成されたデプロイメント・プロファイルについて」に記載されているとおり、MAFでは、モバイル・アプリケーションが作成されたときに、デプロイメント・プロファイルのセットを作成します。これらのプロファイルを使用してアプリケーションをデプロイしたり、それらのプロファイルを編集したり、MAF固有のデプロイメント・プロファイル・ページを使用して新しいプロファイルを構成できます。「デプロイメント・プロファイルの作成」ウィザード(図19-2を参照)を使用して、それらのページからデフォルトのデプロイメント・プロファイルを作成できます。デプロイメント・プロファイルは、必要な数だけ作成できます。これらの標準デプロイメント・プロファイル・ページの詳細は、「ヘルプ」をクリックしてJDeveloperオンライン・ヘルプを参照してください。

注意: MAFアプリケーションのデプロイメントでは、アプリケーションレベルのデプロイメント・プロファイルの作成のみが必要とされるので、ビュー・コントローラレベルのデプロイメント・プロファイルを作成する必要はありません。

始める前に

JDeveloperでモバイル・アプリケーションをデプロイできるようにするには、第2.3.1項「プラットフォームとフォーム・ファクタに応じた開発環境の構成方法」で説明されているように、MAFプリファレンスのページを使用してターゲット・プラットフォームのSDKを指定する必要があります。

ヒント: iOSデプロイメントの場合は、iTunesおよびiOSシミュレータを1回以上実行してから、それらのディレクトリの場所をMAFプラットフォームのプリファレンス・ページで構成します。

デプロイメント・プロファイルを作成する手順は、次のとおりです。

1. 「アプリケーション」→「デプロイ」を選択します。

2. 「新規デプロイメント・プロファイル」を選択します。

3. ターゲット・プラットフォームに応じて、「Android用MAF」、「iOS用MAF」または「MAFアプリケーション・アーカイブ」を選択します(図19-2を参照)。

4. プロファイルのデフォルト名をそのまま使用するか、新しい名前を入力します。「OK」をクリックします。

5. 必要な場合は、「オプション」ページと「アプリケーション・イメージ」ページを適宜使用して、「OK」をクリックします。

   図19-2 「デプロイメント・プロファイルの作成」ウィザード

### 19.2.2 デプロイメント・プロファイルの作成時の処理

ウィザードが完了すると、JDeveloperによってデプロイメント・プロファイルが作成され、デプロイメント・プロファイルのプロパティ・エディタが開きます。

表19-1に、デプロイメント・プロファイルのプロパティ・エディタのMAFに固有のページ(図19-5を参照)をリストします。

表19-1 MAF固有のデプロイメント・プロファイル・ページ

ページ | 機能
--- | ---
iOSオプション | iOSデバイスまたはiOSシミュレータにデプロイされるアプリケーションの設定を変更できます。
Androidオプション | AndroidデバイスまたはAndroidエミュレータにデプロイされるアプリケーションの設定を変更できます。
アプリケーション・イメージ | 適切なグラフィックス・ファイルを追加することで、アプリケーションにカスタム・アイコンを割り当てられます。
デバイスの向き | アプリケーションの表示をデバイスの特定の向きに制限できます。このページはiOSデプロイメント・プロファイルのみに使用されます。

注意: デプロイメントはアプリケーションのニーズによって異なります。表19-1にリストされたページにシードされたデフォルト値を使用してアプリケーションをデプロイできます。

アプリケーションをデプロイすると、JDeveloperによってデプロイメント・ディレクトリと関連するサブディレクトリが作成されます。さらに、ビュー・コントローラ・プロジェクト(異なる名前が付いている必要があります)とアプリケーション・コントローラ・プロジェクトの両方の機能アーカイブ・ファイル(FAR)が作成されます。これら2つのFARに加え、プロジェクトにインポートされたすべてのFARのコピーがJDeveloperによって作成されます。コンパイル・プロファイルを変更する際は、デプロイメント・ディレクトリを削除する必要があります。「ビルド」→「すべてクリーン」を選択することで、このディレクトリに加え、FARを含むビュー・コントローラ・プロジェクト内のデプロイメント・ディレクトリを削除できます。

### 19.2.3 Androidデプロイメント・プロファイルの作成方法

デプロイメント・プロファイルによって、Androidデバイスまたはエミュレータへのアプリケーション・デプロイメントのためのテンプレートまたはAndroidアプリケーション・パッケージ(`.apk`)・ファイルとしてアプリケーションを作成するためのテンプレートが作成されます。

Androidのデプロイメント・プロファイルを作成するには、アプリケーションの署名オプションと`javac`コンパイラの動作を定義し、必要な場合はアプリケーション・アイコンに使用されるデフォルトOracleイメージをカスタム・イメージでオーバーライドします。

始める前に

第2.5項「Androidプラットフォーム用の開発ツールの設定」の説明に従って、Android SDKをインストールおよびダウンロードします。

デプロイメント・フレームワークで、プッシュ通知に必要なファイルをコンパイルできるようにするには、Android SDK Managerで、Google Cloud Messaging Library用のパッケージ(リビジョン3以降)およびAndroidサポート・ライブラリをインストールします(図19-3を参照)。

注意: Google Cloud Messagingは非推奨になりましたが、プッシュ通知を有効にするにはインストールする必要があります。それが「その他」の下に表示されるようにするには、図19-3に示すように、「表示」→「廃止」を選択します。

図19-3 Google Cloud Messaging For Android Libraryパッケージ

Androidエミュレータにデプロイする場合は、Android開発者のWebサイト(`http://developer.android.com/tools/devices/index.html`)で入手可能な「Managing Virtual Devices」の説明に従い、Android Virtual Device Managerを使用して各エミュレータ・インスタンスの仮想デバイスを作成する必要があります。

また、AndroidプラットフォームSDKのMAFのプリファレンス(「ツール」→「プリファレンス」→「MAF」→「プラットフォーム」→「Android」を選択してアクセス)を、Android SDKパッケージのダウンロードの一部であるSDKとプラットフォームの場所に設定する必要があります。図19-4には、これらの場所が示されています。

Android 4.4.2 (API 19) SDKおよびプラットフォームの場所は、以前のバージョンと異なります(図19-4を参照)。

- Android SDKのパスは次のとおりです。

      <SDK Installation>\adt-bundle-windows-x86\sdk

  たとえば、次のように入力します。

      C:\adt-bundle-windows-x86\sdk

- Androidプラットフォームのパスは次のとおりです。

      <SDK Installation>\adt-bundle-windows-x86\sdk\platforms\android-19

  たとえば、次のように入力します。

      C:\adt-bundle-windows-x86\sdk\platforms\android-19

  注意: リビジョン22のリリースではSDKツールの構造が変更され、ビルド・ツールのコンポーネントが`platform-tools`ディレクトリから`build-tools`ディレクトリに再配置されています。デプロイメントを有効にするには、「Androidビルド・ツール・ロケーション」フィールドがビルド・ツールの場所、`aapt`ファイル(Windowsシステム上の`appt.exe`)を参照している必要があります。このファイルの場所は、SDKのリビジョンによって異なります。リビジョン22の場合、このファイルは`build-tools`ディレクトリ内に存在します(`SDK Installation``\adt-bundle-windows-x86\sdk\build-tools\Android-4.n`など)。それ以前のリビジョンの場合、platform-toolsディレクトリ内に存在します(`SDK Installation``\adt-bundle-windows-x86\platfrom-tools`など)。 MAFは、Android SDKに`appt`ファイルの場所を問い合せて、「Androidビルド・ツール・ロケーション」フィールドに適宜値を入力します。SDKのリビジョン22の場合、MAFは開発コンピュータにインストールされている最新バージョンの`build-tools`ディレクトリをこのフィールドに入力します。リビジョン22以前の場合、MAFは`platform-tools`ディレクトリの場所をこのフィールドに入力します。この場合、フィールドは読取り専用です。

注意: プッシュ通知には、Android 2.2プラットフォーム(またはそれ以降)を実行しているデバイスとエミュレータが必要です。これらのデバイスには、Google Playストアがインストールされている必要があります。エミュレータ上でプッシュ通知を有効にするには、Google APIがSDKにインストールされている必要があります。ユーザーは、4.0.3 (API 15)以前のプラットフォームを実行しているデバイス上で、Googleアカウントを作成(およびログイン)する必要があります。 Android開発者のWebサイト(`http://developer.android.com/index.html`)で入手可能な『Google Cloud Messaging for Android』の「GCM Architectural Overview」の章、および第19.2.3項「Androidデプロイメント・プロファイルの作成方法」も参照してください。

図19-4 Android SDK、プラットフォームおよび署名プロパティの設定

「プラットフォーム」ページを使用して、Androidアプリケーションの署名に使用されるキーのデバッグとリリースのプロパティも定義します。続いて、デプロイメント・プロファイル内で、モバイル・アプリケーションのリリース・タイプをデバッグまたはリリースに指定します。署名キー・プロパティは一度定義するのみでかまいません。詳細は、第19.2.3.3項「Android署名オプションの定義」を参照してください。また、Android開発者のWebサイト(`http://developer.android.com/tools/publishing/app-signing.html`)で入手可能な「Signing Your Applications」で、アプリケーションの公開に関する情報も参照してください。

注意: Androidエミュレータにアプリケーションをデプロイするには、API 14以降(Platform 4.0.n)をインストールする必要があります。

#### 19.2.3.1 アプリケーションの詳細オプションの設定

「Androidオプション」ページ(図19-5を参照)では、次を行うことができます。

- アプリケーションのバージョンを示します。詳細は、Android開発者のWebサイト(`http://developer.android.com/tools/publishing/versioning.html`)で入手可能な「Versioning Your Applications」を参照してください。

- `.apk`ファイルのパッケージングを最適化するアーカイブ位置合せツールであるAndroid zipalignツールを構成します。データ・マニフェストなど、各アプリケーション・パッケージに格納されるデータ・ファイルは、Androidオペレーティング環境内の複数プロセスによって絶えずアクセスされます。詳細は、Android開発者のWebサイト(`http://developer.android.com/tools/help/zipalign.html`)で入手可能な「zipalign」を参照してください。

- ロギング・レベル出力を非詳細またはデバッグ(詳細)に設定します。

- デプロイメント・ターゲットに適した署名オプションを設定します(エミュレータまたはデバイス)。詳細は、第19.2.3.3項「Android署名オプションの定義」を参照してください。

図19-5 デプロイメント・プロファイルのプロパティ・エディタ(「Androidオプション」ページ)

アプリケーション・オプションを設定するには:

1. 「Androidオプション」(図19-5を参照)を選択します。

2. デフォルト値をそのまま使用するか、次のオプションを定義します。

   - アプリケーション・バンドルID: `maf-application.xml`ファイルの`id`属性で設定されるアプリケーションの一意のID。Androidデバイスにデプロイされる各アプリケーションには、一意のIDがあります。このIDを数字から始めることはできません。詳細は、第4.3項「モバイル・アプリケーションの基本情報の設定」を参照してください。

     必要な場合は、デプロイメント・ファイルでこの値をオーバーライドできます。ただし、アプリケーションをデプロイするには、この名前がAndroidマニフェスト・ファイルの`<manifest>`要素に含まれる`package`属性に従っている必要があります。この要素については、Android開発者のWebサイト(`http://developer.android.com/guide/topics/manifest/manifest-intro.html`)で入手可能な「The AndroidManifest.xml File」を参照してください。具体的には、IDには、インターネット・ドメイン(com.company.application)のリバースパッケージ書式を使用します。ネーミングの競合を避けるために、パッケージ名にはドメインの所有者が反映されます(例: com.oracle.application)。

     注意: アプリケーション・バンドルIDに空白を含めることはできません。

   - アプリケーション・アーカイブ名: 必要に応じて、MAFによって作成された`.apk`ファイルの名前を入力します。または、デフォルトの名前を使用します。

     MAFのデフォルトでは、`.apk`ファイルの名前は、`maf-application.xml`ファイルで構成されているアプリケーションの`id`属性に基づいて付けられます。詳細は、第4.3項「モバイル・アプリケーションの基本情報の設定」を参照してください。

   - バージョン名: ユーザーに表示されるアプリケーション・コードのリリース・バージョン。第4.3項「モバイル・アプリケーションの基本情報の設定」も参照してください。

   - バージョン・コード: アプリケーション・コードのバージョンを表す整数値。これは、他のアプリケーションによってプログラムで、アップグレードかダウングレードかチェックされます。デフォルトは1で、これが最小の値です。任意の値を選択し、リリースごとに1つずつ値を増やすことができます。

#### 19.2.3.2 デプロイメント・オプションの設定

「オプション」ページでは、`javac`コンパイラ・ツール・オプションによって渡される値、zipalignオプションおよびAndroid APIリビジョンを設定できます。

R.javaファイルと.classファイルのJDK互換性レベルを設定するには:

1. 「ソース・ファイル」ドロップダウン・リストからJDK互換性レベルを選択します。デフォルト値は1.5です。この値は、デプロイメントで`javac`ツールを実行し、`javac` `-source`オプションを使用して`R.java` (アプリケーション・リソースの参照用にAndroidによって生成されたファイル)をコンパイルする際に指定されます。使用可能な値は次のとおりです。

   - 1.5

   - 1.6

   `R.java`の詳細は、Android開発者のWebサイト(`http://developer.android.com/guide/topics/resources/accessing-resources.html`)で入手可能な「Accessing Resources」を参照してください。

2. 「クラス・ファイル」ドロップダウン・リストから、コンパイルされた`.class`ファイルのJDKバージョンの互換性を選択します。この値は、デプロイメントで`javac`ツールを実行し、`javac` `-target`オプションを使用して`R.java`ファイルをコンパイルする際に指定されます。デフォルト値は1.5です。使用可能な値は次のとおりです。

   - 1.5

   - 1.6

3. 「ターゲットSDK APIレベル」ドロップダウン・リストから、アプリケーションが実行されるAPIレベルを選択します。最小(デフォルト)値はAPIレベル9で、これはAndroid 2.3.nプラットフォームに対応します。詳細は、Android開発者のWebサイト(`http://developer.android.com/guide/topics/manifest/manifest-intro.html`)で入手可能な「The AndroidManifest.xml File」で、`<uses-sdk>`属性の説明を参照してください。

4. 「最小SDK APIレベル」ドロップダウン・リストから、アプリケーションが実行できる最小APIレベルを選択します。最小(デフォルト)値は15で、これはAndroid 4.0.3プラットフォームに対応します。

5. 「文字エンコーディング」ドロップダウン・リストから、コンパイラがASCII文字セット以外の文字を解釈する方法を制御するネイティブエンコーディング名を選択します。デフォルトはUTF-8です。

ZIP位置合せオプションを設定するには:

バイト位置合せ(32ビットまたは64ビット)を選択します。32ビット(デフォルト)を選択すると、4バイト境界の位置合せが提供されます。

デプロイ済アプリケーションの記憶域オプションを設定するには:

デフォルトでは、モバイル・アプリケーションは、JDeveloperからデバイスにデプロイされた後またはGoogle Playなどのアプリケーション・マーケットプレイスからダウンロードされた後、Androidデバイスの内部記憶域に格納されます。「優先記憶域の場所」ドロップダウン・リストから使用可能な次のオプションでは、モバイル・アプリケーションの優先記憶域の場所を指定できます。

- 内部: モバイル・アプリケーションをデバイスの内部記憶域に強制的にインストールします。

- 外部: アプリケーションをデバイスのSDカードにインストールできます。ただし、Androidシステムは、SDカードにアプリケーションをインストールできないことを検出した場合(たとえば、SDカードがマウントされていない場合や、SDカードは存在するものの十分な領域がない場合)、かわりにアプリケーションをデバイスの内部記憶域にインストールします。モバイル・デバイス・ユーザーは、システム設定を使用して、内外の記憶域間でアプリケーションを移動できます。

- 自動: アプリケーションをデバイスの外部記憶域または内部記憶域にインストールできることを指定します。モバイル・デバイス・ユーザーは、システム設定を使用して、内外の記憶域間でアプリケーションを移動できます。

「外部」オプションまたは「自動」オプションを選択すると、デプロイメント・フレームワークによって`AndroidManifest.xml`ファイルの`<manifest>`要素が`android:installLocation`属性、および`"preferExternal"`または`"auto"`という値で更新されるようにすることができます。`AndroidManifest.xml`ファイルにこの属性を入力すると、モバイル・アプリケーションを外部SDカードまたは内部記憶域に格納できます。詳細は、Android開発者のWebサイト(`http://developer.android.com/guide/topics/data/install-location.html`)またはAndroid SDKのドキュメントから入手できる『Data Storage Guide』の「App Install Location」を参照してください。

ロギング・レベルを設定するには、次のようにします。

Androidデプロイメントに「詳細出力」を選択して、`.apk`のビルド時にデプロイメントによって起動される各コマンド行ツールによって提供される全出力をログに記録します。このオプションを選択しないと、デプロイメントですべての出力がログに記録されません。

#### 19.2.3.3 Android署名オプションの定義

アプリケーションは、Androidデバイスまたはエミュレータにデプロイする前に、署名する必要があります。Androidでは、認証局は不要です。アプリケーションは自己署名できます。

デプロイメントにおけるモバイル・アプリケーションの署名方法の定義は、2つの手順で構成されます。まず、「MAF」の「プラットフォーム」プリファレンス・ページで、Androidアプリケーションの署名に使用されるキーのデバッグおよびリリース・プロパティを定義します。デバッグおよびリリースの署名プロパティは、一度構成するのみでかまいません。これらのオプションを定義したら、デプロイメント・プロファイルを構成して、デバッグ・モードとリリース・モードのどちらでアプリケーションをデプロイするかを指定します。

始める前に

キーストア・ファイルが存在しない場合は、keytoolユーティリティを使用して、キーストア・ファイルを作成できます(例19-1を参照)。

例19-1 キーストアの生成

    keytool -genkey
            -v
            -keystore c:\jdeveloper\mywork\releasesigning.keystore
            -alias releaseKeyAlias
            -keyalg RSA
            -keysize 2048
            -validity 10000

Android開発者のWebサイト(`http://developer.android.com/tools/publishing/app-signing.html`)で入手可能な「Signing Your Applications」で説明されているとおり、keytoolでは、キーストアを生成する前に、キーストアとキーのパスワード、およびキーの識別名フィールドを入力することを求められます。例19-1のキーストアには、10,000日間有効な単一のキーが含まれています。keytoolユーティリティの使用方法については、Java SEテクニカル・ドキュメント(`http://download.oracle.com/javase/index.html`)を参照してください。

ヒント: Java Platform Standard Edition (Java SE) 7の場合は、`-genkey`コマンドのかわりに`-genkeypair`を使用します。

デバッグ・モードのキー・オプションを構成するには:

1. 「ツール」→「プリファレンス」→「モバイル・アプリケーション・フレームワーク」を選択します。

2. 「プラットフォーム」を選択します。

3. 「デバッグ」タブ(図19-6を参照)を選択します。

   図19-6 デバッグ・デプロイメントの構成

4. 「キーとキーストア・パスワード」フィールドに、デバッグ・デプロイメントに必要なキーストア・ファイルとキーを作成するためにデプロイメントで使用されるパスワードを入力します。Androidデバイスまたはエミュレータへのデプロイメント用のキーストアとキーファイルを生成するこのパスワードには、6文字以上の長さであれば、任意の値を指定できます。デフォルトのパスワードはAndroidです。

リリース・モードのキー・オプションを構成するには:

1. 「ツール」→「プリファレンス」→「モバイル・アプリケーション・フレームワーク」を選択します。

2. 「プラットフォーム」を選択します。

3. 「リリース」タブ(図19-4を参照)を選択して、次を定義します。

   - キーストアの場所: 配布するアプリケーションの署名に使用する秘密鍵を含むキーストアのディレクトリを入力、参照および取得します。

   - キーストア・パスワード: キーストアのパスワードを入力します。このパスワードを使用すると、物理ファイルにアクセスできます。

   - キーの別名: キーの別名を入力します。これはkeytoolの`-alias`引数に使用する値セットです。別名の最初の8文字のみが使用されます。

   - キー・パスワード: キーのパスワードを入力します。このパスワードを使用すると、キーストア内のキー(別名によって識別される)にアクセスできます。

     ヒント: keytoolユーティリティによるキーストアの生成前に、keytoolユーティリティが要求するパスワードとキー・パスワードを入力します。

     これらのパラメータでは、アプリケーションの署名方法の指定に加え、`R.Java`クラスのコンパイル方法も指定します。

4. 「OK」をクリックします。

Androidビルド・モードを設定するには:

1. 「オプション」ページで、ビルド・モードとして「デバッグ」または「リリース」を選択します。

   - アプリケーションの開発やテスト(JavaやJavaScriptのデバッグなど)を行う際は「デバッグ」を選択します。このオプションを使用すると、秘密鍵を提供しなくても、Androidプラットフォーム上でアプリケーションをデプロイできます。Androidエミュレータまたはテスト用のAndroidデバイスにアプリケーションをする場合は、このオプションを使用します。第22.3.5項「JavaコードおよびJavaScriptのデバッグを有効にする方法」も参照してください。

     注意: デバッグ・キーストアおよびキーで署名されたアプリケーションは公開できません。デバッグ・キーストアおよびキーは、テストのみに使用され、エンド・ユーザーへのアプリケーションの公開には使用できません。

   - アプリケーションを公開する準備ができた場合は、「リリース」を選択します。このオプションは、アプリケーション・マーケットプレイス(Google Playなど)にアプリケーションを公開する準備ができた場合に使用します。

     ヒント: アプリケーションのパフォーマンスをテストするには、デバッグ・モードではなくリリース・モードを使用します。

2. 「OK」をクリックします。

   デバッグ・モードまたはリリース・モードで署名された`.apk`ファイルは、デバイスまたはエミュレータにデプロイできます。実行時に、MAFは、図19-7に示すように、赤の三角形内に感嘆符で表されるデバッグ・シンボルを重ねることで、アプリケーションがデバッグ・モードでデプロイされたことを示します。

   図19-7 デプロイメント・モード

#### 19.2.3.4 資格証明の格納に関する必知事項

MAFは、キーおよびキーストアのパスワードをファイルベースの資格証明ストア(`cwallet.sso`)に格納します。資格証明の格納および取得を管理するこのファイルは、ユーザーのJDeveloperシステム・フォルダの`o.maf`フォルダ内に存在します。たとえば、Windows 7環境では、`cwallet.sso`ファイルは`C:\Users\jsmith\AppData\Roaming\JDeveloper\system12.1.3\o.maf`に存在します。

詳細は、『Oracle Fusion Middleware管理者ガイド』の「Oracleウォレットについて」の項、および『Oracle Fusion Middleware Oracle Platform Security Servicesによるアプリケーションの保護』の資格証明ストアの基本の項を参照してください。

注意: MAFは、キーおよびキーストア資格証明を`product-preferences.xml`というファイルに格納します。JDeveloperおよびMAFの現在のバージョンのインストール・プロセス時に「インポート・プリファレンスの確認」ダイアログの「はい」をクリックしてプリファレンス設定を保持した場合、MAFはこれらの資格証明を`cwallet.sso`ファイルに移行します。ただし、`cwallet.sso`ファイルは、現在のバージョンのOracle JDeveloperとMAFの他のインストールには移行されません。再インストールした場合(または別のインストールを作成した場合)は、`cwallet.sso`ファイルを`o.maf`フォルダにコピーするか、または「プラットフォーム」プリファレンス・ページでリリース・モードの資格証明を再構成する必要があります。

#### 19.2.3.5 Androidアプリケーションへのカスタム・イメージの追加方法

サイズや解像度の異なるAndroidデバイス上でMAFアプリケーション・アイコンが適切に表示されるようにするには、同じイメージの低密度、中密度および高密度バージョンを用意する必要があります。MAFは、これらの表示要件を満たすデフォルトOracleイメージを提供します。ただし、アプリケーションでカスタム・アイコンが必要とされる場合は、「アプリケーション・イメージ」ページ(図19-8を参照)を使用して、アプリケーション・アイコンとスプラッシュ画面用のPNG形式のイメージを選択することで、デフォルト・イメージをオーバーライドできます。スプラッシュ画面には、縦向きと横向きのイメージを追加できます。カスタム・イメージ・ファイルを追加しない場合は、デフォルトのOracleアイコンが使用されます。カスタム・イメージを作成するには、Android開発者のWebサイト(`http://developer.android.com/design/style/iconography.html`)から入手可能な『Iconography』を参照してください。

図19-8 Androidアプリケーション用のカスタム・イメージの設定

始める前に

Androidテーマに適しており、複数の画面タイプをサポートできるディメンション、密度およびコンポーネントを使用するPNG、JPEGまたはGIFファイル形式のイメージを取得します。詳細は、Android開発者のWebサイト(`http://developer.android.com/guide/practices/screens_support.html`)で入手可能な「Supporting Multiple Screens」を参照してください。

カスタム・イメージを追加するには:

1. 「アプリケーション・イメージ」をクリックします。

2. 「参照」機能を使用して、プロジェクト・ファイルからスプラッシュ画面およびアイコン・イメージ・ファイルを選択します。図19-8には、低密度、中密度、高密度および超高密度ディスプレイを装備するデバイスでの表示にアプリケーションで使用されるアプリケーション・アイコンのイメージと縦向きのスプラッシュ画面用のイメージを選択する様子が示されています。

3. 「OK」をクリックします。

#### 19.2.3.6 JDeveloperによってAndroidアプリケーション用のイメージがデプロイされる場合の処理

デプロイメントの際、MAFにより、JDeveloperは、ソースの場所から一時デプロイメント・フォルダにイメージをコピーできます。MAF拡張機能に付属のデフォルト・イメージ(`アプリケーション・ワークスペース・ディレクトリ`\`Application Resources\Resources\images`内)の場合は、JDeveloperはシードされた場所から、ビュー・コントローラ・プロジェクトのデプロイメント・サブディレクトリ(`アプリケーション・ワークスペース``\ViewController\deploy`)にコピーします。表19-2に示されているように、各イメージ・ファイルは、`drawable`オブジェクトにちなんで名付けられた`drawable`というサブディレクトリにコピーされます。詳細は、Android開発者のWebサイト(`http://developer.android.com/reference/android/graphics/drawable/Drawable.html`)を参照してください。それぞれの`drawable`ディレクトリは、イメージ密度(`ldpi`、`mdpi`、`hdpi`および`xhdpi`)と向き(`port`、`land`)に対応します。これらのディレクトリ内で、JDeveloperは、各アイコン・イメージ・ファイルの名前を`adfmf_icon.png`に、各スプラッシュ画面イメージの名前を`adfmf_loading.png`に変更します。

表19-2 シードされたアプリケーション・イメージのデプロイメント・ファイルの場所

ソース・ファイル(...\resource\Android) | 一時デプロイメント・ファイル(...ViewController\deploy)
--- | ---
`display-ldpi-icon.png` | `drawable-ldpi\adfmf_icon.png`
`display-mdpi-icon.png` | `drawable-mdpi\adfmf_icon.png`
`display-hdpi-icon.png` | `drawable-hdpi\adfmf_icon.png`
`display-xhdpi-icon.png` | `drawable-xhdpi\adfmf_icon.png`
`display-port-ldpi-splashscreen.png` | `drawable-port-ldpi\adfmf_loading.png`
`display-port-mdpi-splashscreen.png` | `drawable-port-mdpi\adfmf_loading.png`
`display-port-hdpi-splashscreen.png` | `drawable-port-hdpi\adfmf_loading.png`
`display-port-xhdpi-splashscreen.png` | `drawable-port-xhdpi\adfmf_loading.png`
`display-land-ldpi-splashscreen.png` | `drawable-land-ldpi\adfmf_loading.png`
`display-land-mdpi-splashscreen.png` | `drawable-land-mdpi\adfmf_loading.png`
`display-land-hdpi-splashscreen.png` | `drawable-land-hdpi\adfmf_loading.png`
`display-land-xhdpi-splashscreen.png` | `drawable-land-xhdpi\adfmf_loading.png`

カスタム・イメージの場合、JDeveloperは、アプリケーション・アイコンのセットを指定の場所から一時デプロイメントの場所の対応する密度と向きのサブディレクトリにコピーします。

### 19.2.4 iOSデプロイメント・プロファイルの作成方法

iOSの場合は、デプロイメント・プロファイルのプロパティ・エディタを使用して、iOSアプリケーションのビルド構成と、スプラッシュ画面イメージおよびアプリケーション・アイコンの場所を定義します。

始める前に

JDeveloperも実行されているAppleコンピュータに、Xcodeをダウンロードします(Xcodeには、Xcode IDE、パフォーマンス分析ツール、iOSシミュレータ、Mac OS XおよびiOS SDKが含まれています)。

ヒント: アプリケーションのコンパイルに最低限必要なサポート対象のバージョンについては、Oracle Technology Network (`http://www.oracle.com/technetwork/developer-tools/maf/documentation`)で動作保証とサポートのマトリクスを参照してください。

Xcodeはデプロイメント時に使用されるので、JDeveloperからモバイル・アプリケーションをデプロイする前にAppleコンピュータにインストールする必要があります。

ヒント: Xcodeの最新バージョンはApp Storeから入手できますが、次のサイトから以前のバージョンをダウンロードできます。 `https://developer.apple.com/xcode/` このサイトにアクセスするには、Apple IDおよびApple開発者としての登録が必要です。

Xcodeをダウンロードしたら、「iOSプラットフォーム」プリファレンス・ページで、そのxcodebuildツールの場所を入力する必要があります。iOSシミュレータへのデプロイメントの場合は、iOSシミュレータのSDKの場所を入力します。詳細は、第2章「プラットフォームとフォーム・ファクタに応じた開発環境の構成方法」を参照してください。

注意: iTunesとiOSシミュレータの両方を1回以上実行してから、それらの場所を「iOSプラットフォーム」プリファレンス・ページに入力します。

モバイル・アプリケーションを(iOSシミュレータではなく) iOSデバイスにデプロイするには、iOSプロビジョニング・プロファイルからプロビジョニング・プロファイルと証明書の両方を取得する必要があります。詳細は、第19.2.4.2項「デバイス署名オプションの設定」を参照してください。

デプロイメント・プロファイルを作成する手順は、次のとおりです。

1. 「iOSオプション」(図19-9を参照)を選択します。

2. デフォルト値をそのまま使用するか、次を定義します。

   - アプリケーション・バンドルID: 必要な場合は、このアプリケーションで使用する、会社のドメイン名を特定するバンドルIDを入力します。アプリケーション・バンドルIDは、iOSデバイスにインストールされた各アプリケーションに対して一意であることと、リバースパッケージ・スタイルの命名規則(つまり、com.<organization name>.<company name>)に従うことが必要です。詳細は、iOS Developer Library (`http://developer.apple.com/library/ios/navigation/`)で入手可能な『App Distribution Guide』を参照してください。iOS Provisioning Portalを使用したバンドル・シードIDの取得の詳細は、第19.4.4.3項「アプリケーションIDの登録」を参照してください。また、第4.3項「モバイル・アプリケーションの基本情報の設定」も参照してください。

     注意: アプリケーション・バンドルIDに空白を含めることはできません。

     それぞれのアプリケーション・バンドルIDは一意であるため、複数のモバイル・アプリケーションを同じデバイスにデプロイできます。アプリケーション・バンドルIDさえ異なっていれば、2つのアプリケーションに同じ名前を指定できます。同じデバイスにデプロイされるモバイル・アプリケーションは、それぞれ別のサンドボックスに配置されます。アプリケーションが相互に認識したり、データを共有することはありません(デバイス・スコープのみが共通になります)。

   - アプリケーション・アーカイブ名: 必要に応じて、`.ipa`ファイルまたは`.app`ファイルの名前を入力します。「デプロイメント・アクション」ダイアログ(図19-22を参照)で「配布パッケージにデプロイ」または「デバイスとの同期のためにiTunesにデプロイ」オプションを選択すると、MAFによって`.ipa`ファイルが作成されます。「アプリケーションのシミュレータへのデプロイ」オプションを選択すると、`.app`ファイルが作成されます。または、デフォルトの名前を使用します。詳細は、第19.4.2項「iOSデバイスへのアプリケーションのデプロイ方法」と第19.4.5項「App StoreへのiOSアプリケーションの配布方法」を参照してください。

     MAFのデフォルトでは、`.ipa`ファイル(または`.app`ファイル)の名前は、`maf-application.xml`ファイルで構成されているアプリケーションの`id`属性に基づいて付けられます。詳細は、第4.3項「モバイル・アプリケーションの基本情報の設定」を参照してください。

   - 最小iOSバージョン: アプリケーションをデプロイできるiOSバージョンの中で、最も古いものを指定します。デフォルト値は現在のバージョンです。バージョンは、インストールされているSDKのバージョンによって異なります。

   - シミュレータ・ターゲット・バージョン: アプリケーションをデプロイするエミュレータのバージョンを選択します。使用可能なターゲット・バージョンを確認するには、iPhoneシミュレータで「Hardware」→「Version」を選択します。最低バージョンは6.0です。デフォルト設定は「最大使用可能」です。詳細は、iOS Developer Library (`http://developer.apple.com/library/ios/navigation/`)で入手可能な『iOS Simulator User Guide』を参照してください。

     注意: 通常は、iOSターゲット・バージョンより古いバージョンをテスト用のシミュレータで使用できます。

   - ターゲット・ファミリ: アプリケーションを実行するiOS製品ファミリを選択します。デフォルト・オプションはiPadとiPhoneの両方です。

   図19-9 iOSオプションの設定

#### 19.2.4.1 iOSビルド・オプションの定義

iOSビルド・オプションでは、デバッグまたはリリース・ビットとライブラリによりアプリケーションをデプロイできます。「オプション」ページには、iOS署名モードの構成オプション、デバッグ・モードとリリース・モードが表示されます。

始める前に

iOSアプリケーション(`.ipa`ファイル)をiOSデバイスにデプロイするには、インストールの必須コンポーネントであるプロビジョニング・プロファイルと、デバイス上の開発者とアプリケーションを特定する署名済証明書が必要です。これらはiOS Provisioning Portalから取得する必要があります。詳細は、第19.4.4項「iOSデバイスへのアプリケーションのデプロイに関する必知事項」を参照してください。さらに、「iOSプラットフォーム」プリファレンス・ページで、プロビジョニング・プロファイルの場所と証明書の名前を入力する必要があります。詳細は、第19.2.4.2項「デバイス署名オプションの設定」を参照してください。

ビルド・オプションを設定するには:

1. 「iOSオプション」を選択します(図19-9を参照)。

2. 次のいずれかのビルド・オプションを選択します。

   - デバッグ: 開発用のビルドの場合はこのオプションを選択します。デバッグ・ビルドを指定すると、デバッグ・シンボルが含まれます。第22.3.2項「iOSプラットフォームでのデバッグ方法」と第22.3.5項「JavaコードおよびJavaScriptのデバッグを有効にする方法」も参照してください。

   - リリース: リリース・ビットおよびライブラリを使用してビルドをコンパイルする場合に選択します。

     ヒント: アプリケーションのパフォーマンスをテストするには、デバッグ・モードではなくリリース・モードを使用します。

実行時に、MAFは、図19-7「デプロイメント・モード」に示すように、赤の三角形内に感嘆符で表されるデバッグ・シンボルを重ねることで、アプリケーションがデバッグ・モードでデプロイされたことを示します。

#### 19.2.4.2 デバイス署名オプションの設定

「iOSプラットフォーム」プリファレンス・ページには、開発コンピュータ上でのプロビジョニング・プロファイルの場所と証明書の名前のフィールドが含まれています。アプリケーションをiOSデバイスにデプロイするか、MAFアプリケーション・アーカイブとしてデプロイする場合は、これらのパラメータを定義する必要があります。

注意: モバイル・アプリケーションをiOSシミュレータにデプロイする場合は、証明書とプロビジョニング・プロファイルのいずれも不要です。

署名オプションを設定するには:

1. 「ツール」→「プリファレンス」→「モバイル・アプリケーション・フレームワーク」を選択します。

2. 「プラットフォーム」→「iOS」を選択します。

3. ページの「デバイス署名」セクション(図19-10を参照)で、「プロビジョニング・プロファイル」フィールドにプロビジョニング・プロファイルの場所を入力します。

4. 「証明書」フィールドに、コードの作成者(開発者や会社など)を特定する開発者または配布証明書の名前を入力します。証明書の名前は、Keychain Accessユーティリティ(Applicationsフォルダからアクセス)を使用して表示できます。Keychain Accessユーティリティから名前全体をコピーしてください。「証明書」フィールドに入力する名前は、次の書式に従う必要があります。

       iPhone Developer: John Smith (PN3ENLQ3DU)

   図19-10 「iOSプラットフォーム」プリファレンス・ページの「デバイス署名」セクション

注意: プロビジョニング・プロファイルには、アプリケーションの開発バージョン用とリリース・バージョン用の両方があります。アプリケーションのリリース・バージョンに使用されるプロビジョニング・プロファイルは、あらゆるデバイスにインストールできます。一方、開発バージョン用のプロビジョニング・プロファイルは、IDがプロファイルに埋め込まれたデバイスのみにインストールできます。詳細は、iOS Developer Library (`http://developer.apple.com/library/ios/navigation/```)で入手可能な『App Distribution Guide』を参照してください。

#### 19.2.4.3 iOSアプリケーションへのカスタム・イメージの追加

「アプリケーション・イメージ」ページでは、アプリケーション・アイコンおよびアートワークに使用されるデフォルトのOracleイメージをカスタム・イメージでオーバーライドして、アプリケーションを再ブランディングできます。図19-11に示されているこのページのオプションでは、様々な状況、デバイスの向きおよびデバイスの解像度で使用されるカスタム・イメージの場所を入力できます。iOSアプリケーション・アイコン・イメージの詳細は、『iOS Human Interface Guidelines』の「Icon and Image Design」を参照してください。これらのドキュメントは、iOS Developer Library (`http://developer.apple.com/library/ios/navigation/`)から入手できます。

注意: すべてのイメージはPNG形式であることが必要です。

図19-11 カスタム・イメージの追加

カスタム・イメージを追加するには:

1. 「アプリケーション・イメージ」をクリックします。

2. アイコン上部に光沢効果のあるデフォルトのiOSスタイルのアイコンを使用しない場合は、「アイコンに光沢効果を追加しない」を選択します。

3. 「参照」を選択し、アイコン・イメージを選択して、iTunesによって`.ipa`ファイルに割り当てられるデフォルトのAppleイメージをオーバーライドします。このイメージはすべてのアプリケーションに必要とされ、iPhoneアプリケーションとiPadアプリケーションのどちらも512 x 512ピクセルであることが必要です。詳細は、第19.2.4.4項「iTunesアートワークに関する必知事項」を参照してください。

4. 使用可能なイメージ・タイプをツリーに表示するバージョンおよびデバイス・タイプを選択します。デフォルトでは、MAFはiPadおよびiPhoneデバイスで使用可能なすべてのイメージ・スタイルおよびイメージ・タイプを表示します。ただし、図19-3に示すように、デバイス・タイプおよびオペレーティング・システムのバージョンを選択して、選択を絞り込むことができます。「アイコン・フォルダ」フィールド内では、MAFによって、これらのイメージ・ファイルが格納されている、アプリケーションの`Resources`ディレクトリ内の場所が表示されます。

   図19-12 イメージ・タイプの選択

5. ツリーからイメージ・タイプを選択します。

6. 「ファイル」フィールドで、図19-13に示すように、「参照」を選択して別のイメージを選択します。このイメージ・ファイルは、現在のアプリケーション内に存在する必要があります。

   デプロイメント時に、JDeveloperはカスタム・イメージ・ファイルをデプロイメント・プロファイルにコピーし、その名前をデフォルト・イメージの名前に一致するように変更します。

   図19-13 カスタム・イメージの追加

   その名前の場合、図19-14に示すように、JDeveloperはエラーを指摘して誤った(または存在しない)イメージ・ファイルが選択されないように保護します。第4.10.2項「外部リソースの選択に関する必知事項」も参照してください。

   図19-14 存在しないイメージの警告

7. 「OK」をクリックします。

#### 19.2.4.4 iTunesアートワークに関する必知事項

デフォルトでは、iTunesを通してiOSデバイスにデプロイされる、またはダウンロード用のアーカイブ(`.ipa`ファイル)としてデプロイされるモバイル・アプリケーションでは、別途指定されていないかぎり、デフォルトのOracleイメージが使用されます。

デプロイされるアプリケーションのアイコンとしてiTunesアートワーク・イメージを選択することで、デフォルトのイメージをオーバーライドします。イメージを使用してアプリケーションのバージョンを区別できます。図19-15に、デフォルト・イメージとユーザーが選択したイメージの違いを示します。Application4にはデフォルト・イメージが、Application6にはユーザーが選択したイメージ(512 x 512ピクセルにスケールを変更したOracleアイコン)が表示されています。

図19-15 カスタムとデフォルトのアプリケーション・アイコン

デプロイメント時に、MAFは、`.ipa`ファイルのトップレベルのiTunesArtworkというファイルにそのiTunesアートワーク・イメージを追加することで、iTunesでそのアイコンが表示されるようにします。

#### 19.2.4.5 表示をデバイスの特定の向きに制限する方法

デフォルトで、MAFは、iPhoneとiPadの両方ですべての向きをサポートします。たとえば、iPads上で上下逆の縦向きでのみ表示する必要があるアプリケーションでは、「デバイスの向き」ページ(図19-16を参照)を使用して、アプリケーションの回転をこれらの向きのみに制限できます。

図19-16 デバイスの向きの選択

アプリケーションの表示をデバイスの特定の向きに制限するには:

1. 「デバイスの向き」を選択します(図19-16を参照)。

2. 表19-3にリストされた向きの中から、不要な向きをすべて消去します。デフォルトでは、MAFは、これらすべてのデバイスの向きにデプロイします。デフォルトでは、これらの向きがすべて選択されています。

   表19-3 iPhoneデバイスの向き

   アイコン | 説明
   --- | ---
   | iPad、縦: ホーム・ボタンは画面の下部。
   | iPad、上下逆: ホーム・ボタンは画面の上部。
   | iPad、横左: ホーム・ボタンは画面の左側。
   | iPad、横右: ホーム・ボタンは画面の右側。
   | iPhone、縦: ホーム・ボタンは画面の下部。
   | iPhone、上下逆: ホーム・ボタンは画面の上部。
   | iPhone、横左: ホーム・ボタンは画面の左側。
   | iPhone、横右: ホーム・ボタンは画面の右側。

3. 「OK」をクリックします。

#### 19.2.4.6 デバイスの向きを選択解除する場合の処理

デバイスの向きを選択解除すると、ソース`.plist`ファイルが更新されます。

## 19.3 Androidアプリケーションのデプロイ

デプロイメント・プロファイルを定義したら、「デプロイメント・アクション」ダイアログ(図19-17を参照)を使用してAndroidプラットフォームにモバイル・アプリケーションをデプロイできます。このダイアログを使用すると、完了したアプリケーションを、Androidエミュレータまたはテスト用のAndroidデバイスにデプロイできます。アプリケーションのテストとデバッグが完了したら、このダイアログを使用して、モバイル・アプリケーションをAndroidアプリケーション・パッケージ(`.apk`)・ファイルとしてバンドルできます。これによって、アプリケーション・マーケットプレイス(Google Playなど)を通して、アプリケーションをエンド・ユーザーに公開することが可能になります。

ヒント: 「デプロイメント・アクション」ダイアログのかわりに、OJDeployコマンド行ツールを使用してモバイル・アプリケーションをAndroidプラットフォームにヘッドレス・モードでデプロイすることもできます。詳細は、第19.8項「コマンド行からのモバイル・アプリケーションのデプロイ」を参照してください。

図19-17 Androidアプリケーションの「デプロイメント・アクション」ダイアログ

### 19.3.1 AndroidエミュレータへのAndroidアプリケーションのデプロイ方法

モバイル・アプリケーションはAndroidエミュレータに直接デプロイできます。

始める前に

Androidエミュレータにデプロイするには、次を行う必要があります。

- 「Androidプラットフォーム」プリファレンス・ページ(「ツール」→「プリファレンス」→「モバイル・アプリケーション・フレームワーク」を選択してアクセス)で、デバッグ・パスワードを構成します。

  注意: Android 4.0.nプラットフォーム(API 14以降)をインストールする必要があります。

- Android Virtual Deviceインスタンスの構成にARMシステム・イメージが反映されていることを確認します。

- デプロイメント・プロファイルの「Androidオプション」ページで、次を行います。

  1. 「デバッグ」が選択されていることを確認します。

  2. 「OK」をクリックします。

  注意: 「Androidプラットフォーム」プリファレンス・ページは、デバッグ・モードのデプロイメント用のキーストアとキーの生成に使用されるパスワードで構成する必要があります。詳細は、第19.2.3.3項「Android署名オプションの定義」を参照してください。

- アプリケーションをデプロイする前にAndroidエミュレータを起動します。

  エミュレータは、Android Virtual Device Manager(図19-18を参照)またはコマンド行を使用して起動できます。コマンド行から起動する場合は、`tools`ディレクトリ(`Android\android-sdk`内)に移動し、`emulator -avd`に続けてエミュレータ名を入力することで(例: `-avd AndroidEmulator1`)、エミュレータを起動します。

  注意: デプロイメント時にはAndroidエミュレータを1つのみ実行できます。

  図19-18 Android Virtual Device Managerを使用したエミュレータの起動

アプリケーションをAndroidエミュレータにデプロイするには:

1. 「アプリケーション」→「デプロイ」を選択し、Androidデプロイメント・プロファイルを選択します。

2. 「アプリケーションのエミュレータへのデプロイ」→「次へ」を選択します。

3. 「サマリー」ページ(図19-2を参照)をレビューし、「戻る」を選択して別のデプロイメント・アクティビティを選択するか、「終了」を選択します。「サマリー」ページには、デプロイメント・プロファイルの次のパラメータが表示されます。

   - アプリケーション・バンドルID: アプリケーションを特定する、Java言語のような一意のパッケージ名。

     注意: 図19-19の「サマリー」ページには、アプリケーション・バンドルIDが、エミュレータへのデプロイメントの成功に必要なリバースパッケージ書式であることが示されています。リバースパッケージ書式に従わないアプリケーションをデプロイすると、エミュレータが停止して、デプロイメントを完了できなくなります。

   - ファイル: Androidターゲットにデプロイされる`.apk`の名前。

   - デプロイ・モード: ビルド・モード。この値は、デプロイメント・プロファイルに設定されている値に応じて、「リリース」と「デバッグ」のいずれかになります。

   図19-19 Androidエミュレータ・デプロイメントのサマリー

4. デプロイメント・ログをレビューします(図19-20を参照)。デプロイメント・ログには、デプロイヤがAndroidエミュレータの実行中インスタンスを検出し、Androidデバッグ・ブリッジ・サーバーを起動したことが示されます。第19.3.6項「Androidデバッグ・ブリッジの使用方法に関する必知事項」も参照してください。

   図19-20 デプロイメント・ログ

### 19.3.2 Androidデバイスへのアプリケーションのデプロイ方法

モバイル・アプリケーションは、2.n (APIレベル9)以降のプラットフォーム上で動作するAndroidデバイスに直接デプロイできます。

始める前に

第2.5.2項「Androidデバイスの設定方法」の説明に従って、JDeveloperをホストする開発コンピュータにデバイスを接続します。

デプロイメント・オプション・ページ(図19-5を参照)で、ビルド・モードとして「デバッグ」を選択します。図19-6に示すように、「Androidプラットフォーム」プリファレンス・ページでデバッグ署名資格証明が構成されていることを確認します。

Androidデバイスにアプリケーションをデプロイするには:

1. 「アプリケーション」→「デプロイ」を選択し、Androidデプロイメント・プロファイルを選択します。

2. 「アプリケーションのデバイスへのデプロイ」→「次へ」を選択します。

3. 「概要」ページを確認します。「戻る」または「次へ」をクリックします。

4. 「終了」をクリックします。

### 19.3.3 Androidアプリケーションの公開方法

第22章「MAFアプリケーションのテストおよびデバッグ」の説明に従ってアプリケーションのテストとデバッグが完了したら、Android開発者のWebサイト(`http://developer.android.com/tools/publishing/publishing_overview.html`)の説明に従ってアプリケーション・マーケットプレイス(Google Playなど)にアプリケーションを公開できます。

始める前に

デプロイメント・プロファイルの「Androidオプション」ページで、ビルド・モードとして「リリース」を選択します。

注意: 第19.2.3.3項「Android署名オプションの定義」の説明に従って、「Androidプラットフォーム」プリファレンス・ページ(「ツール」→「プリファレンス」→「モバイル・アプリケーション・フレームワーク」を選択してアクセス)で署名オプションを構成する必要があります。

.apkファイルとしてアプリケーションをデプロイするには:

1. 「アプリケーション」→「デプロイ」を選択し、Androidデプロイメント・プロファイルを選択します。

2. 「アプリケーションのパッケージへのデプロイ」→「次へ」を選択します。

3. 「サマリー」ページ(図19-19を参照)をレビューします。「戻る」または「次へ」をクリックします。

4. 「終了」をクリックします。

5. アプリケーション・マーケットプレイスにアプリケーションを公開します。

### 19.3.4 .apkファイル作成時のJDeveloperでの処理

アプリケーションをデプロイすると、次のものが`.apk`ファイルにデプロイされます。

- `adfmsrc`の内容

- `.adf`フォルダの内容

- `maf-application.xml`ファイルおよび`maf-feature.xml`ファイル

- `logging.properties`ファイル

- JVM 1.4ファイル

表19-4 .apkファイルの内容

内容 | .apkファイル内の場所
--- | ---
`.adf`フォルダの内容 | Androidアプリケーション・ファイルのルート・フォルダ(`[apkRoot]\.adf`)
`adfmsrc`フォルダの内容 | デプロイメントでは、`adfmsrc`フォルダの内容が、`user`フォルダ(`[apkRoot]\user`)内のデフォルトJARファイルにパッケージ化されます。このJARファイルはAndroid Asset Packaging Tool (AAPT)を使用して`.apk`に追加され、`ANDROID_MOBILE_NATIVE_archiveN`という書式のデフォルト名を持ちます。デフォルト名の`N`は、何番目のAndroid作成プロファイルであるかを示します(この名前はプロファイルの作成時にオーバーライドできます)。 このJARファイルには次が含まれます。 `.java`ファイルから生成された任意の`.class`ファイル。これは、ビュー・コントローラ・プロジェクトと`adfmsrc`の内容に追加されます。`.java`ファイルはJVM 1.4 JDK `javac`ツールを使用してコンパイルされます。 データ・バインディングおよびpagedefメタデータ・ファイルが含まれます。 このJARファイルはDalvik仮想マシンによって処理されません。`.class`ファイルはJDK内で実行されるので、Dalvikバイトコード形式(`.dex`)への変換は不要です。
`adfmf_application.xml`ファイルと`adfmf_feature.xml`ファイル | Configurationというファイル(`[apkRoot]\Configuration`)内にあります。
`logging.properties`ファイル | アプリケーション・ファイルのルートにあります。
JVM 1.4ファイル | JVMファイルは次の2つの別個のフォルダにパッケージ化されます。 テンプレート内のライブラリ・ファイル(`\framework\build\java_res\libs\`)は、`APK - [apkRoot]\lib`内の`lib`フォルダにパッケージ化されます。 `\framework\build\java_res\assets\storage`ファイルは、`APK - [apkRoot]\assets\storage`内の`assets\storage`ディレクトリにパッケージ化されます。

### 19.3.5 最近使用されたデプロイメント・プロファイルの選択

デプロイメント・アクションを選択すると、JDeveloperによって「デプロイ」メニューにショートカットが作成されます。このショートカットを使用すると、同じデプロイメント・アクションを使用してアプリケーションを簡単に再デプロイできます。

### 19.3.6 Androidデバッグ・ブリッジの使用方法に関する必知事項

デプロイメントでは、デバイス(デバイスにデプロイする場合)またはエミュレータ(Androidエミュレータにデプロイする場合)が検出されるまで、Androidデバッグ・ブリッジ・サーバーが5回再起動されます。どちらも検出されない場合、図19-21に示すとおり、デプロイメント・プロセスは終了します。

図19-21 終了されたデプロイメント

デプロイメント前にAndroidデバッグ・ブリッジ・コマンド行ツールを使用する場合は、デプロイメントの完了後に同じコマンドを再度入力する必要があります。たとえば、デプロイメントの前にエミュレータまたはデバイスのロギング情報を表示するために`adb logcat`と入力した場合、ロギング出力の取得を再開するには、アプリケーションがデプロイされた後で再度`adb logcat`と入力する必要があります。Androidデバッグ・ブリッジ・コマンド行ツールは、Android SDKインストールの`platform-tools`ディレクトリ内に配置され、ここから実行されます。このツールの詳細は、Android開発者のWebサイト(`http://developer.android.com/tools/help/adb.html`)を参照してください。

## 19.4 iOSアプリケーションのデプロイ

図19-22に示された「デプロイメント・アクション」ダイアログでは、iOSアプリケーションを直接iOSシミュレータにデプロイするか、iTunesを通してデバイスにデプロイできます。iOSアプリケーションはAppleコンピュータからのみデプロイできます。iOSシミュレータへのデプロイメントを行うために、iOS Developer ProgramまたはiOS Developer Enterprise Programへのメンバーシップを取得する必要はありません。Apple開発者として登録されていれば、App Storeから入手できないXcodeのバージョンにアクセスできるので、問題ありません。iOSデバイスへのデプロイメントに必要なiOS開発者プログラム(第19.4.2項「iOSデバイスへのアプリケーションのデプロイ方法」と第19.4.5項「App StoreへのiOSアプリケーションの配布方法」で説明されています)の詳細は、`https://developer.apple.com/programs/`を参照してください。

図19-22 「デプロイメント・アクション」ダイアログ(iOSアプリケーション用)

ヒント: 「デプロイメント・アクション」ダイアログのかわりに、OJDeployコマンド行ツールを使用してモバイル・アプリケーションをiOSプラットフォームに手動でデプロイすることもできます。詳細は、第19.8項「コマンド行からのモバイル・アプリケーションのデプロイ」を参照してください。

### 19.4.1 iOSシミュレータへのiOSアプリケーションのデプロイ方法

「デプロイメント・アクション」ダイアログでは、iOSアプリケーションを直接iOSシミュレータにデプロイできます。

始める前に

iOSシミュレータへのデプロイメントを可能にするには、次のタスクを実行する必要があります。

- Xcodeをインストールして実行し、ライセンス契約を受諾して、指示に従ってインストール後のその他のタスクを実行します。

  注意: アプリケーションをiOSシミュレータにデプロイする前に、最低1回はXcodeを実行する必要があります。これを行わないと、デプロイメントに失敗します。

- Xcodeのインストール後、iOSシミュレータを1回以上実行してください。

- 「iOSプラットフォーム」プリファレンス・ページで、iOSシミュレータのSDKの場所を設定します(図19-24を参照)。

- デプロイメント・プロファイルの「iOSオプション」ページで、「デバッグ」を選択し、「OK」をクリックします。

  注意: 「iOSプラットフォーム」ページ(「ツール」→「プリファレンス」→「モバイル・アプリケーション・フレームワーク」を選択してアクセス)で、プロビジョニング・プロファイルの場所と証明書の名前を入力する必要があります。詳細は、第19.2.4.2項「デバイス署名オプションの設定」を参照してください。

- アプリケーションをデプロイする前に、iOSシミュレータが実行されている場合は、そのシミュレータを停止します。シミュレータを停止しなかった場合は、デプロイメント中にその処理が実行されます。

- iOS Developer Library (`http://developer.apple.com/library/ios/navigation/`)で入手可能な『iOS Simulator User Guide』を参照してください。iOSシミュレータはXcodeとともにインストールされます。

iOSシミュレータにアプリケーションをデプロイするには:

1. 「アプリケーション」→「デプロイ」を選択し、iOSデプロイメント・プロファイルを選択します。

2. 「アプリケーションのシミュレータへのデプロイ」→「次へ」を選択します。

3. 「サマリー」ページ(図19-23を参照)をレビューします。このページには、次の値が表示されます。「終了」をクリックします。

   - アプリケーション・バンドルID: iOS Provisioning Portalから生成されたバンドル・シードが先頭に付加されたJava言語のようなパッケージ名(com.<organization name>.<application name>)を含む一意の名前。

   - ファイル: iOSターゲットにデプロイされる最終イメージのファイル名。

   - 証明書: アプリケーションを作成した開発者または会社。デプロイメント・プロファイルの「オプション」ページでこの値が構成されていない場合、「サマリー」ページには<指定なし>と表示されます。

   - プロビジョニング・プロファイル: 1つ以上の開発用証明書とデバイスをアプリケーションIDと関連付けるプロビジョニング・プロファイルの名前。デプロイメント・プロファイルの「オプション」ページでこの値が構成されていない場合、「サマリー」ページには<指定なし>と表示されます。

   注意: iOSシミュレータへのデプロイメントでは、証明書とプロビジョニング・プロファイルの値を定義する必要はありません。このデプロイメント・シナリオでは、「サマリー」ページでこれらの値について<指定なし>と表示されます。

   図19-23 デプロイメント・アクションの「サマリー」ダイアログ

### 19.4.2 iOSデバイスへのアプリケーションのデプロイ方法

「デバイスとの同期のためにiTunesにデプロイ」オプションを使用すると、モバイル・アプリケーションをデバッグおよびテスト用のiOSデバイスにデプロイできます。iOSデバイスまたは配布サイトへのデプロイメントには、iOS Developer ProgramまたはiOS Developer Enterprise Programへのメンバーシップが必要です。詳細は、`https://developer.apple.com/programs/`を参照してください。

始める前に

JDeveloperからiOSデバイスにアプリケーションを直接デプロイすることはできません。アプリケーションは、Apple iTunesのApplicationsフォルダからデプロイする必要があります。そのためには、次のタスクを実行する必要があります。

- Apple iTunesを開発コンピュータにダウンロードし、それを1回以上実行して、必要なフォルダとディレクトリを作成します。

- 「iOSプラットフォーム」プリファレンス・ページで、`Automatically Add to iTunes`フォルダの場所(アプリケーションのデプロイメントに使用される場所)を設定します(図19-24を参照)。

  ヒント: ユーザーのホーム・ディレクトリ(`/User/<username>/Music/iTunes/iTunes Media/Automatically Add to iTunes.localized`)は、iTunes Mediaフォルダのデフォルト・ディレクトリですが、このフォルダの場所は次のように変更できます。 iTunesで、「Edit」→「Preferences」→「Advanced」を選択します。 「Change」をクリックし、新しい場所を参照します。 ライブラリを統合します。 元のiTunes Mediaフォルダを削除します。 手順の詳細は、Apple Support (`http://support.apple.com`)を参照してください。 「iOSプラットフォーム」プリファレンス・ページでも場所を更新する必要があります。

- xcodebuildツールが起動されるXcodeフォルダの場所を設定します(例: 図19-24の`/Developer/usr/bin`)。

  図19-24 iTunes Mediaフォルダとxcodebuildシステムの場所の設定

- 証明書の名前とプロビジョニング・プロファイルの場所を、「iOSプラットフォーム」プリファレンス・ページで入力します。iOS Provisioning Portalによって、iOSデバイスへのデプロイメントまたはApp Storeや内部ダウンロード・サイトへの`.ipa`ファイルの公開に必要な証明書とプロビジョニング・プロファイルが生成されます。

  注意: デバイスまたはアーカイブにデプロイするようにiOSプロビジョニング・プロファイルと証明書を設定しないと、デプロイメントは失敗します。MAFでは、このような状況でデプロイできなかったアプリケーションがログに記録されます。詳細は、第19.4.4項「iOSデバイスへのアプリケーションのデプロイに関する必知事項」を参照してください。

- デプロイメント・プロファイルの「iOSオプション」ページで、ビルド・モードとして「デバッグ」を選択し、「OK」を選択します。

- iOS Developer Library (`http://developer.apple.com/library/ios/navigation/`)で入手可能な『App Distribution Guide』を参照してください。

iOSデバイスにアプリケーションをデプロイするには:

1. 「アプリケーション」→「デプロイ」を選択し、iOSデプロイメント・プロファイルを選択します。

2. 「デバイスとの同期のためにiTunesにデプロイ」→「次へ」を選択します。

3. 「サマリー」ページをレビューします。このページには、次の値が表示されます。「終了」をクリックします。

   - アプリケーション・バンドルID: iOS Provisioning Portalから生成されたバンドル・シードが先頭に付加されたJava言語のようなパッケージ名(com.<organization name>.<application name>)を含む一意の名前。

   - ファイル: iOSターゲットにデプロイされる最終イメージのファイル名。

   - 証明書: アプリケーションを作成した開発者(または会社)。デプロイメント・プロファイルの「オプション」ページでこの値が構成されていない場合、「サマリー」ページには<指定なし>と表示されます。

   - プロビジョニング・プロファイル: 1つ以上の開発用証明書とデバイスをアプリケーションIDと関連付けるプロビジョニング・プロファイルの名前。デプロイメント・プロファイルの「オプション」ページでこの値が構成されていない場合、「サマリー」ページには<指定なし>と表示されます。

   注意: 証明書とプロビジョニング・プロファイルの値を<指定なし>とすることはできません。iTunesへのデプロイメントを可能にするには、「オプション」ページでこれらの値を指定する必要があります。

4. iOSデバイスを開発コンピュータに接続します。

5. iTunesを開いてデバイスを同期化します。

### 19.4.3 iOSデバイスにアプリケーションをデプロイする場合の処理

デプロイメントに成功すると、図19-15のようにアプリケーションがiTunesの「Apps」フォルダに表示されます。

### 19.4.4 iOSデバイスへのアプリケーションのデプロイに関する必知事項

iOS Developer Programのメンバーのみがアクセス可能なiOS Provisioning Portalを使用して最初にプロビジョニング・プロファイルを作成しないかぎり、iOSアプリケーション(つまり、`.ipa`ファイル)をiOSデバイスにデプロイしたり、App Storeまたは内部のホストされたダウンロード・サイトに公開することはできません。第19.2.4.2項「デバイス署名オプションの設定」の説明に従って、「オプション」ページでプロビジョニング・プロファイルの場所と証明書の名前を入力します。

iOS Developer Library (`http://developer.apple.com/library/ios/navigation/`)で入手可能な『App Distribution Guide』で説明されているように、プロビジョニング・プロファイルによって開発用証明書、デバイスおよびアプリケーションIDが関連付けられます。iOS Provisioning Portalでは、これらのエンティティとプロビジョニング・プロファイルを作成できます。

ヒント: プロビジョニング・プロファイルをダウンロードしたら、このファイルをダブルクリックして`Library/MobileDevice/Provisioning Profile`ディレクトリに追加してください。

図19-25 iOS Provisioning Portal

#### 19.4.4.1 iOS開発用証明書の作成

証明書は、開発者のアイデンティティに関する情報と公開鍵および秘密鍵が結合された電子的なドキュメントです。iOS開発用証明書がOS開発者として識別し、デプロイメントのためのアプリケーションの署名を有効にするので、証明書をダウンロードしたら、基本的に開発者自身のアイデンティティを開発コンピュータにインストールします。iOSオペレーティング環境では、すべての証明書がKeychainによって管理されます。

iOS Provisioning Portalの「Certificates」ページを使用して、CSR(証明書署名リクエスト)をログに記録します。CSRを完了すると、iOS Provisioning PortalによってiOS開発用証明書が発行されます。

#### 19.4.4.2 テストおよびデバッグ用のAppleデバイスの登録

開発コンピュータに証明書をインストールしたら、「Current Available Devices」タブ(iOS Provisioning Portalの「Devices」ページ内)をレビューして、開発者自身(またはその会社)がテストやデバッグに使用するAppleデバイスを特定します。シリアル番号のような一意のデバイス識別子(UDID)によって各デバイスを識別するこのリストにデバイスが含まれていないかぎり、アプリケーションはデプロイできません。

#### 19.4.4.3 アプリケーションIDの登録

アプリケーションIDは、デバイス上のアプリケーションの一意の識別子です。アプリケーションIDは、第4.3.1項「モバイル・アプリケーションのIDおよび表示動作の設定方法」で説明されている書式の、バンドルIDと呼ばれる管理者が作成したリバース・ドメイン名の前に、バンドル・シードと呼ばれるAppleが生成した10文字の英数字文字列が付加された構成になります。図19-26には、他のアプリケーションとファイルやKeychainを共有しない、一意のアプリケーションIDが示されています。

図19-26 明示的なアプリケーションID

8E549T7128.com.oracle.*のように、アプリケーション名にワイルドカード文字(*)を使用すると、一連のアプリケーション間でアプリケーションIDを共有できます。たとえば、iOS Provisioning Portal上で管理者がcom.oracle.MAF.*という名前を付けた場合は、異なるアプリケーション(com.oracle.MAF.application1とcom.oracle.MAF.application2)を指定できます。

注意: アプリケーションでプッシュ通知を受信する場合、アプリケーションIDは、ワイルドカード文字ではなく、完全な一意のIDである必要があります。ワイルドカードによって識別されるアプリケーションでは、プッシュ通知を受信できません。詳細は、iOS Developer Library (`http://developer.apple.com/library/ios/navigation/`)で入手可能な『Local and Push Notification Programming Guide』の「Provisioning and Development」を参照してください。

アプリケーション間で8E549T7128などの同じ接頭辞を共有する場合、それらのアプリケーションでは、ファイルまたはキー・チェーンを共有できます。

注意: バンドルIDは、デプロイメント・プロファイルの「オプション」ページで設定されたアプリケーションIDと一致している必要があります。

### 19.4.5 App StoreへのiOSアプリケーションの配布方法

iOSデバイス上でのアプリケーションのテストとデバッグが終了したら、App Storeまたは内部ダウンロード・サイトを通してより広範なオーディエンスにアプリケーションを配布できます。App Storeにアプリケーションを公開するには、`.ipa`ファイルをiTunes Connectに送信する必要があります。これによって、`.ipa`ファイルをiTunesに追加して、アプリケーションを更新し、テスト・ユーザーを作成することが可能になります。

始める前に

アプリケーションを配布する前に、次のタスクを実行する必要があります。

- 「iOSプラットフォーム」プリファレンス・ページ(図19-24を参照)で、`Automatically Add to iTunes`ディレクトリの場所を入力します。

  ヒント: この場所を入力する前に、iTunesを1回以上実行します。第19.4.2項「iOSデバイスへのアプリケーションのデプロイ方法」を参照してください。

- 実際のiOSデバイス上でアプリケーションをテストします。第19.4.2項「iOSデバイスへのアプリケーションのデプロイ方法」を参照してください。

- iOS Provisioning Portalを通して配布証明書を取得します。

  注意: 配布証明書を作成できるのは、チーム・エージェントのみです。

- `.ipa`ファイルをiTunesに配布するための、iTunes Connectアカウントを取得します。詳細は、iOS Development CenterのApp Store Resource Centerにある『Prepare App Submission』を参照してください。具体的には、『App Store Review Guidelines』を確認して、App Review Teamに確実に受け入れられるようにしてください。

- 『iTunes Connect Developer Guide』を確認することをお薦めします。どちらのガイドも、iOS Developer Library (`http://developer.apple.com/library/ios/navigation/`)から入手できます。

- デプロイメント・プロファイルの「iOSオプション」ページで、ビルド・モードとして『App Distribution Guide』「リリース」を選択し、「OK」をクリックします。

iOSアプリケーションをApp Storeに配布するには:

1. 「アプリケーション」→「デプロイ」を選択し、iOSデプロイメント・プロファイルを選択します。

2. 「配布パッケージにデプロイ」を選択します。

3. 「サマリー」ページをレビューします。このページには、次の値が表示されます。「終了」をクリックします。

   - アプリケーション・バンドルID: iOS Provisioning Portalから生成されたバンドル・シードが先頭に付加されたJava言語のようなパッケージ名(com.<organization name>.<application name>)を含む一意の名前。

   - ファイル: iOSターゲットにデプロイされる最終イメージのファイル名。

   - 証明書: アプリケーションの作成者。デプロイメント・プロファイルの「iOSプラットフォーム」プリファレンス・ページでこの値が構成されていない場合、「サマリー」ページには<指定なし>と表示されます。

   - プロビジョニング・プロファイル: 1つ以上の開発用証明書とデバイスをアプリケーションIDと関連付けるプロビジョニング・プロファイルの名前。「iOSプラットフォーム」プリファレンス・ページでこの値が構成されていない場合、「サマリー」ページには<指定なし>と表示されます。

   注意: 証明書とプロビジョニング・プロファイルの値は、<指定なし>にはできません。`.ipa`ファイルがiTunesで受け入れられるようにするには、「オプション」ページでこれらの値を指定する必要があります。

4. iTunes Connectにログインします。

5. 『iTunes Connect Developer Guide』の「Adding New Apps」と「Using Application Loader」の項で説明されているManage Your ApplicationsモジュールとApplication Loaderを使用して、検討用に`.ipa`ファイルをiTunes Connectに送信します。

6. アプリケーションが承認されたら、『iTunes Connect Developer Guide』の「Creating Test Users」の項でManage Usersモジュールの使用方法を参照してください。多言語アプリケーションをテストするには、アプリケーションのローカライズ対象地域のテスト・ユーザー・アカウントを作成します。

7. Managing Your Applicationモジュールを使用したバイナリの更新については、『iTunes Connect Developer Guide』の「Editing and Updating App Information」の項を参照してください。

## 19.5 機能アーカイブ・ファイル(FAR)のデプロイ

MAFのビュー・コントローラ・プロジェクトによる再利用を可能にするために、アプリケーション機能(一般的に、MAF AMXまたはローカルHTMLとして実装されるもの)は、機能アーカイブ(FAR)というアーカイブにバンドルされます。第4.13項「機能アーカイブ・ファイルの使用」で説明されているように、FARはモバイル・アプリケーションで使用可能なアプリケーション機能アーティファクトが含まれているJARファイルです。FARには、Javaクラスを含めることも可能ですが、これらのクラスはコンパイルする必要があります。例19-2は、1つの`maf-feature.xml`ファイルと1つの`connections.xml`ファイルを含むFARの内容を示しています。`connections.xml`の詳細は、Oracle Fusion Middleware Oracle Application Development FrameworkによるFusion Webアプリケーションの開発のconnections.xmlファイルに定義されている検索に関する項を参照してください。

例19-2 機能アーカイブ・ファイルの内容

    connections.xml (or some form of connection metadata)

      META-INF
         adfm.xml
         maf-feature.xml
         MANIFEST.MF
         task-flow-registry.xml

      oracle
        application1
          mobile
             Class1.class
             DataBindings.cpx
             pageDefs
               view1PageDefs

      model
         adfc-mobile-config.adfc.diagram
         ViewController-task-flow.adfc.diagram

      public_html
         adfc-mobile-config.xml
           index.html
           navbar-icon.html
           springboard-icon.html
         view1.amx
         ViewController-task-flow.xml

機能アーカイブ・ファイルでの作業には、次のタスクがあります。

1. 機能アーカイブ・ファイルの作成: 機能アプリケーションをライブラリJARファイルとしてデプロイすることで機能アーカイブを作成します。

2. モバイル・アプリケーション作成時の機能アーカイブ・ファイルの使用: これにはFARのインポートと、インポートされた接続の再マッピングが含まれます。

3. FARの機能を含むモバイル・アプリケーションのデプロイ: これには、デプロイメント・テンプレート内の一意の名前が付けられたフォルダへのFARの解凍が含まれます。

   注意: デプロイメント・プロセス時に、MAFによってFARが生成されます。別のアプリケーションでこのFARを使用する場合は、ビュー・コントローラ・プロジェクトのみをデプロイすればすみます。

### 19.5.1 機能アーカイブのデプロイメント・プロファイルの作成方法

「デプロイメント・プロファイルの作成」ダイアログを使用します(図19-27を参照)。

図19-27 MAF機能アーカイブ・ダイアログの作成

始める前に

アプリケーションの適切な接続を作成します。FARは接続要件が異なる様々なMAFアプリケーションで使用できるため、接続ソースまたは実際に標準化された接続名を表す接続名を選択します。

機能アーカイブのデプロイメント・プロファイルを作成するには:

1. ビュー・コントローラ・プロジェクトを右クリックし、「新規」→「デプロイ」→「新規デプロイメント・プロファイル」を選択します。

   注意: アプリケーションレベルの別個のデプロイメント・プロファイルを作成する必要はありません。

2. 「デプロイメント・プロファイルの作成」ダイアログで「MAF機能アーカイブ」を選択します。

3. プロファイル名を入力するか、デフォルトを受け入れて、「OK」をクリックします。

   注意: プロファイルには適切な名前を付けてください。そうしないと、アーカイブ名が同じアプリケーション機能を複数アップロードしたときに、問題が発生する可能性があります。詳細は、第4.13.4項「機能アーカイブ・リソースの再使用の有効化に関する必知事項」を参照してください。

4. 機能アーカイブJARファイルに含める接続を選択します(図19-28を参照)。

   図19-28 FARの接続の選択

5. 「次へ」をクリックしてオプションをレビューし、「終了」をクリックします。

### 19.5.2 機能アーカイブのデプロイメント・プロファイルのデプロイ方法

「デプロイメント・アクション」ダイアログでは、FARをJARファイルとしてデプロイできます。図19-29に示すこのダイアログには、「機能アーカイブJARファイルへデプロイします。」という1つのデプロイメント・オプションのみがあります。

図19-29 デプロイメント・アクション

機能アーカイブのデプロイメント・プロファイルをデプロイするには:

1. ビュー・コントローラ・プロジェクトを右クリックして、機能アーカイブのデプロイメント・プロファイルを選択します。

2. 「終了」をクリックします。「サマリー」ページ(図19-30を参照)に、機能アーカイブ・ファイルのJARパスがデプロイされるフルパスが表示されます。

   図19-30 デプロイメントの「サマリー」ページ

### 19.5.3 機能アーカイブ・ファイルのデプロイメント・プロファイルをデプロイする場合の処理

「デプロイメント・アクション」ダイアログを完了すると、MAFによって、「サマリー」ページに示されたパスにライブラリJARが作成されます。他のアプリケーションでこのJARを使用できるようにするには、最初に、図19-31に示す「リソース・パレット」(第4.13.1項「MAFアプリケーションでのFARコンテンツの使用方法」で説明)で機能アーカイブJARの場所への接続を作成することでこれを利用可能にする必要があります。図19-31は、ファイル・システム接続によりモバイル・アプリケーション使用可能となる機能アーカイブを示します。

図19-31 「リソース・パレット」のデプロイされた機能アーカイブJAR

## 19.6 モバイル・アプリケーション・アーカイブ・ファイルの作成

新しいモバイル・アプリケーションを既存のモバイル・アプリケーションから作成するには、まず元のモバイル・アプリケーションをモバイル・アプリケーション・アーカイブ(`.maa`)ファイルとしてパッケージ化した後、このファイルから新しいモバイル・アプリケーションを導出します。`.maa`ファイルは、サード・パーティによる使用が可能です(第19.7項「署名されていないデプロイメント・パッケージの作成」を参照)。

`.maa`ファイルによって、モバイル・アプリケーションの構造が保持されます。表19-5に、このファイルの内容を示します。

表19-5 モバイル・アプリケーション・アーカイブ・ファイルの内容

ディレクトリ | 説明
--- | ---
`adf` | 次のようなメタデータ・ファイルを含む`META-INF`ディレクトリが格納されます。 `adf-config.xml`ファイル `maf-application.xml`ファイル `maf-config.xml`ファイル その他の該当するアプリケーション・レベルのファイル(`connections.xml`ファイルなど)
`Projects` | ワークスペース内の各プロジェクトに対応するJARファイルが格納されます。たとえば、デフォルトのモバイル・アプリケーションを`.maa`ファイルにデプロイすると、`ViewController.jar`ファイルと`ApplicationController.jar`ファイルはこのディレクトリに配置されます。`.maa`ファイルの`Projects`ディレクトリには、元のプロジェクトの`.java`ファイルは格納されません。かわりに、`.java`ファイルはコンパイルされ、その結果生成された`.class`ファイルが、プロジェクトJARファイル(`ApplicationController.JAR/classlib/mobileApplicationArchive.jar`など)に含まれる別のJARファイル内に配置されます。
`ExternalLibs` | 元のモバイル・アプリケーションの外部にあるアプリケーション・レベルのライブラリ(FARを含む)が格納されます。
`META-INF` | `cvm.properties`および`logging.properties`ファイルが格納されます。
`resources` | 次のディレクトリが含まれます。 `android`: アプリケーション・アイコンやスプラッシュ画面に使用される、Android固有のイメージ・ファイルが格納されます。 `ios`: アプリケーション・アイコンやスプラッシュ画面に使用される、iOS固有のイメージ・ファイルが格納されます。 security: `cacerts`ファイル(キーストア・ファイル)が格納されます。

表19-5にリストされたアーティファクトに加えて、`.maa`ファイルには、元のモバイル・アプリケーションの内部にあるFARまたはJARファイル、およびその制御(`.jws`)ファイルが格納されたフォルダが含まれます。第19.7.2項「MAFアプリケーション・アーカイブ・ファイルのインポート時に行われる処理」も参照してください。

### 19.6.1 モバイル・アプリケーション・アーカイブ・ファイルの作成方法

モバイル・アプリケーションの作成後、JDeveloperによって、デフォルトのMAFアプリケーション・アーカイブ・デプロイメント・プロファイルが作成されます。モバイル・アプリケーション・アーカイブ・ウィザードを使用すると、`.maa`ファイルを作成できます。

ヒント: また、OJDeployを使用して`.maa`ファイルを作成することもできます(第19.8項「コマンド行からのモバイル・アプリケーションのデプロイ」を参照)。

モバイル・アプリケーション・アーカイブ・ファイルを作成するには:

1. 「アプリケーション」→「デプロイ」→「新規デプロイメント・プロファイル」をクリックします。

2. 「デプロイメント・プロファイルの作成」ダイアログで、「MAFアプリケーション・アーカイブ」→「OK」をクリックします(図19-32を参照)。

   図19-32 MAAデプロイメント・プロファイルの作成

3. 必要に応じて、「アプリケーション・アーカイブ・オプション」ページでモバイル・アプリケーション・アーカイブの名前を入力する(図19-33を参照)か、デフォルトの名前(およびパス)をそのまま使用します。「OK」をクリックします。

   図19-33 モバイル・アプリケーション・アーカイブ・ファイルの名前とパスの入力

4. 必要に応じて、次を実行します。

   1. 「アプリケーション・ディスクリプタ」ページ(図19-34を参照)で、`META-INF`フォルダ(`application_workspace\src\META-INF`)の内容に付けるファイル・グループ名を入力します(またはデフォルトの名前をそのまま使用します)。

      図19-34 META-INFの内容に付けるファイル・グループ名の入力

   2. この「アプリケーション・ディスクリプタ」ページの「コントリビュータ」サブページを選択して、ファイル・グループの内容を提供するディレクトリとJARファイルのリストを編集します。

      図19-35 モバイル・アプリケーション・アーカイブ・ファイルへのコントリビュータの編集

   3. 「フィルタ」ページ(図19-36を参照)を使用して、`.maa`ファイルに含めるファイルを編集したり、コンテンツの組込みまたは除外ルールを設定したりします。

      図19-36 ファイルとディレクトリの組込み(または除外)

   4. 「プロファイルの依存性」ページ(図19-37を参照)を使用して、プロジェクト内の依存プロファイルを指定します。

      図19-37 デプロイメント・プロファイルの選択

モバイル・アプリケーションをMAFアプリケーション・アーカイブ・ファイルとしてパッケージ化するには:

1. 「アプリケーション」→「デプロイ」を選択し、「MAFアプリケーション・アーカイブ」デプロイメント・プロファイルを選択します。

2. 「デプロイメント・アクション」ウィザードで、「アプリケーションのMAAへのデプロイ」を選択します(図19-38を参照)。

   図19-38 MAFアプリケーション・アーカイブ・ファイルへのデプロイメント

3. 「次へ」をクリックして、デプロイメント・サマリーを確認します(図19-39を参照)。

   図19-39 MAFアプリケーション・アーカイブのデプロイメント・サマリー

4. 「終了」をクリックします。

## 19.7 署名されていないデプロイメント・パッケージの作成

MAFアプリケーション・アーカイブ(`.maa`)・ファイル形式を使用すると、署名されていないモバイル・アプリケーションをサード・パーティに提供できます。インポートした`.maa`ファイルからモバイル・アプリケーションを導出することによって、次のような様々なカスタマイズが可能になります。

- アプリケーションへの一意のアプリケーションIDの付与(プッシュ通知を有効にする場合など)。

- 企業固有の資格証明または証明書を使用した、アプリケーションへの署名。

- カスタマイズされたスプラッシュ画面とアプリケーション・アイコンによる、リソースの置換え。

注意: `.maa`ファイルを既存のアプリケーションにインポートすると、ワークスペースとプロジェクトのコンテナ・ファイル(それぞれ`.jws`ファイルと`.jpr`ファイル)が上書きされます。このため、MAF AMXページと構成ファイル(`maf-application.xml`、`maf-config.xml`、`connections.xml`、`adf-config.xml`など)に対して以前加えた変更の一部は保持されません。

### 19.7.1 署名されていないアプリケーションの作成方法

署名されていないアプリケーションを作成するには、`.maa`ファイルを新しいモバイル・アプリケーションにインポートします。

署名されていないアプリケーションを作成するには:

1. 「ファイル」を選択し、「新規」を選択します。

2. 「新規ギャラリ」で、「アプリケーション」→「アーカイブ・ファイルからのMAFアプリケーション」を選択します。

   注意: または、「ファイル」→「インポート」→「アーカイブ・ファイルからのMAFアプリケーション」を選択します。

3. 「場所」ページで、「MAAファイル」フィールドの「参照」を選択します。

4. 「インポートするMAAファイルの選択」ページで、`.maa`ファイルを強調表示し(図19-40を参照)、「開く」をクリックします。

   図19-40 .maaファイルの選択

5. 必要に応じて、次を実行するか、デフォルト値をそのまま使用します。

   1. `.maa`ファイルから導出したモバイル・アプリケーションの名前を「アプリケーション・ファイル」フィールドに入力します(図19-41を参照)。

   2. 「参照」をクリックして、モバイル・アプリケーションのディレクトリを取得します。

   図19-41 ディレクトリの場所の入力

6. 「次へ」をクリックします。

7. インポートのサマリー情報を確認し、「終了」をクリックします。

   図19-42 MAFアプリケーション・アーカイブの内容のサマリー

### 19.7.2 MAFアプリケーション・アーカイブ・ファイルのインポート時に行われる処理

MAFでは、`.maa`ファイルがインポートされた後、次を実行します。

1. アプリケーション・フォルダを作成します。

2. ワークスペース・コンテナ(`.jws`)・ファイルを`.maa`ファイルからアプリケーション・ファイルに解凍し、ユーザー指定の値に従ってその名前を変更します。

3. `adf`ディレクトリとその内容をアプリケーション・フォルダに解凍します。このディレクトリの名前は、`.adf`に変更されます。

4. `META-INF`ディレクトリとその内容をアプリケーション・フォルダに解凍し、アプリケーション・フォルダの`src`ディレクトリ内に配置します。

5. `ExternalLibs`ディレクトリとその内容をアプリケーション・フォルダに解凍します。

   注意: このディレクトリに格納された外部リソースはすべて、`.maa`ファイルとしてパッケージ化された(そしてアプリケーションにインポートされた)モバイル・アプリケーション内で使用できますが、これらのリソースへの参照は、`.maa`ファイルから導出されたモバイル・アプリケーションに対しては無効になります。

6. `resources`ディレクトリをアプリケーション・フォルダに解凍します。

7. 元のモバイル・アプリケーションの内部にあるFAR (またはその他のライブラリ)を含む、すべてのフォルダを解凍します。MAFによって、これらのアーティファクトの元の場所が保持されます。

8. MAFでは、元のモバイル・アプリケーションの`Projects`ディレクトリ内にあるJARファイルごとに、次を実行します。

   - JARファイルの名前(`.jar`拡張子を除く)に対応するアプリケーション・ディレクトリの下に、プロジェクト・フォルダを作成します。

   - JARファイルの内容を、適切なプロジェクト・フォルダ内に解凍します。MAFによって、これらのプロジェクト・フォルダ内に次のものが格納されます。

     - 元の`.jpr`ファイル。

     - `META-INF`、`public_html`、`src`、`adfmsrc`などの標準的なディレクトリ。

     - `ExternalLibs`ディレクトリの内容。

       注意: このディレクトリに格納された外部リソースはすべて、インポート済の`.maa`ファイルを使用してパッケージ化されたMAFプロジェクト内で使用できますが、これらのリソースへの参照は、既存のプロジェクト、または`.maa`ファイルをインポートすることによって作成されたプロジェクトに対しては無効になります。

     - JARファイル内にパッケージ化されたすべてのJavaクラスを含む`classlib`ディレクトリ。

       注意: `.maa`ファイルに`classlib`ディレクトリが含まれている場合、MAFでは、このディレクトリのすべてのJARファイルを、新しく作成されたモバイル・アプリケーションにライブラリ依存性として追加します。

## 19.8 コマンド行からのモバイル・アプリケーションのデプロイ

JDeveloper IDEを起動しなくても、OJDeployコマンド行ツールを使用して、JDeveloperからiOSまたはAndroidアプリケーションをデプロイできます。コマンド行のデプロイメントは、テストのためのツールとして機能すると同時に、スクリプトを使用したアプリケーションのデプロイ方法として機能します。

デプロイメント・プロファイルのプロパティ・エディタを使用してiOSまたはAndroidデプロイメント・ファイルを作成したら、OJDeployを使用してiOSシミュレータと(iTunes経由で)iOSデバイスに、またはiOSバンドル(`.ipa`および`.app`ファイル)として、あるいは機能アーカイブJARファイルとして、ヘッドレス・モードでアプリケーションをデプロイできます。同様に、OJDeployを使用すると、AndroidエミュレータとAndroidデバイスの両方に、またはAndroidアプリケーション・パッケージ(`.apk`)・ファイルとして、あるいは機能アーカイブJARファイルとして、アプリケーションをデプロイできます。OJDeployの詳細は、Oracle Fusion Middleware Oracle JDeveloperによるアプリケーションの開発のコマンド行からのデプロイに関する項を参照してください。

注意: OJDeployをMac上で使用するには、次の行を`ojdeploy.conf`ファイルに追加してください。 `SetSkipJ2SDKCheck true` このファイルは`jdev_install``/jdeveloper/jdev/bin`にあります。

### 19.8.1 OJDeployを使用したモバイル・アプリケーションのデプロイ

次のコマンドを使用して、MAFのデプロイメント・プロファイルをデプロイできます。

- `deployToDevice`: iOSデバイスまたはAndroidデバイスにアプリケーションをデプロイします。iOSアプリケーションの場合、このコマンドは、iTunesを使用してアプリケーションがデバイスにデプロイされるデバッグ・シナリオで使用されます。詳細は、第19.4.5項「App StoreへのiOSアプリケーションの配布方法」を参照してください。

- `deployToSimulator`: アプリケーションをiOSシミュレータに(`.app`ファイルとして)デプロイするか、Androidエミュレータにデプロイします。モバイル・アプリケーションはAppleコンピュータ上のiOSシミュレータにのみデプロイできます。

- `deployToPackage`: iOSアプリケーションを`.ipa`ファイルとして、またはAndroidアプリケーションを`.apk`ファイルとしてデプロイします。アプリケーションは、Appleコンピュータでのみ、`.ipa`ファイルとしてパッケージ化できます。

- `deployToFeatureArchive`: 機能アーカイブをJARファイルにデプロイします。

- `deployToApplicationArchive`: モバイル・アプリケーションをMAFアプリケーション・アーカイブ・ファイル(`.maa`)としてパッケージ化します。

これらのコマンドは、`ojdeploy`コマンド行ツール、OJDeployの引数およびそのオプションとともに、次のように使用します。

    ojdeploy deployToSimulator -profile <profile name> -workspace <jws file location>

注意: OJDeployコマンドと引数では大文字と小文字が区別されます。

表19-6に、MAFのデプロイメント・コマンドを変更するために使用するOJDeploy引数をリストします。

ヒント: `-help`オプションを任意のコマンドで使用すると(例: `ojdeploy deployToSimulator -help`)、使用方法と構文に関する情報を取得できます。

表19-6 MAFのデプロイメント用のOJDeploy引数

引数 | 説明
--- | ---
`-profile` | AndroidまたはiOSデプロイメント・プロファイルの名前。次に例を示します。
    ojdeploy deployToSimulator -profile iosDeployProfile ...
`-workspace` | モバイル・アプリケーション・ワークスペースのコンテナ(`.jws`)・ファイルへのフルパス。次に例を示します。
    ... -workspace /usr/jsmith/mywork/Application1/Application1.jws
モバイル・アプリケーションをモバイル・アプリケーション・アーカイブとしてパッケージ化するには:
    ojdeploy deployToApplicationArchive
             -profile applicationArchiveProfile
             -workspace /usr/jdoe/Application1/application1.jws
`-project` | `deployToFeatureArchive`コマンドの場合は、機能アーカイブのデプロイメント・プロファイルを含むプロジェクト(ビュー・コントローラ・プロジェクト)の名前を指定する必要があります。次に例を示します。
    ojdeploy deployToFeatureArchive
             -profile farProfileName
             -project ViewController
             ...
`-buildfile` | バッチ・デプロイ用のビルド・ファイルへのフルパス。
`-buildfileschema` | ビルドファイルの出力XMLスキーマ。

表19-6に示した引数の他に、Oracle Fusion Middleware Oracle JDeveloperによるアプリケーションの開発のコマンドの使用方法の項で説明されているOJDeployオプションを使用することもできます。

注意: 次のオプションはサポートされていません。 `-forcerewrite` `-nocompile` `-nodatasources` `-nodepdendents` `-outputfile` `-updatewebxmlejbrefs`

表19-7に、MAFのデプロイメント・コマンドでOJDeployオプションを使用する方法の例を示します。

表19-7 MAFのデプロイメント用のOJDeployオプション

オプション | 説明
--- | ---
`-clean` | コンパイルの前に、プロジェクト出力ディレクトリからすべてのファイルを削除します。次に例を示します。
    ojdeploy deployToSimulator
             -profile iosDeployProfile
             -workspace /usr/jsmith/jdeveloper/mywork/Application1.jws
             -clean
`-stdout, -stderr` | 標準出力とエラー・ロギングのストリームを、それぞれのプロファイルとプロジェクトのファイルにリダイレクトします。次に例を示します。
    ojdeploy deployToSimulator -profile iosDeployProfile
             -workspace /usr/jsmith/jdeveloper/mywork/Application1.jws
             -clean
             -stdout /usr/jsmith/stdout/stdout.log
             -stderr /usr/jsmith/stderr/stderr.log

表19-8は、`deployToApplicationArchive`コマンドとともに使用するマクロを示しています。

表19-8 MAFアプリケーション・アーカイブのパッケージ化に使用するマクロ

マクロ | 説明
--- | ---
`workspace.name` | アプリケーション・ワークスペースのコンテナ・ファイルの名前(`.jws`拡張子を除く)。
`workspace.dir` | アプリケーション・ワークスペースのコンテナ(`.jws`)・ファイルのディレクトリ。
`profile.name` | デプロイするプロファイルの名前。
`profile.dir` | プロファイルのデフォルトのデプロイメント・ディレクトリ。
`base.dir` | このパラメータを使用して、現在のojdeployディレクトリをオーバーライドします。ビルド・スクリプトでbasedir属性を使用して、現在のojdeployディレクトリをオーバーライドできます。