プライマリ・コンテンツに移動

Oracle Enterprise Pack for Eclipse Oracle Mobile Application Framework (OEPE Edition)でのモバイル・アプリケーションの開発 リリース2.1.3 E67371-01 |
| 目次

前 | 次 |

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

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

この章には次の項が含まれます:

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

- 第28.2項「デプロイメント構成の使用」

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

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

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

- 第28.8項「Oracle Mobile Security Suiteでのデプロイ」

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

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

### 28.1.1 OEPEによるアプリケーションのデプロイ方法

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

実際のデプロイメント・プロセスは、3つの手順で構成されています。

- まず、プラットフォーム(AndroidまたはiOS)用のSDKを「プリファレンス」ダイアログに登録します。詳細は、Oracle Enterprise Pack Oracle Enterprise Pack for Eclipseのインストールを参照してください。

- MAFアプリケーションごとに、ターゲットを定義します。ターゲットは、プラットフォーム(AndroidまたはiOS)の組合せであり、固有バージョンのMAFランタイムです。デフォルトでは、アプリケーションを作成すると、OEPEによって、登録されているSDKプラットフォームごとにターゲットが作成されます。追加のターゲットは、「プロジェクト・プロパティ」ダイアログを使用して定義でき、このダイアログは、アセンブリ・プロジェクトのコンテキスト・メニューにあります。「モバイル・アプリケーション・フレームワーク」を選択して「追加」をクリックし、新しいターゲットを定義します。

- デバッグまたは実行構成を作成し、それを実行します。

ビュー・コントローラ・プロジェクトを機能アーカイブ(FAR)としてデプロイすることで、アプリケーション機能を再利用できます。また、モバイル・アプリケーション全体は、モバイル・アプリケーション・アーカイブ(`.maa`)・ファイルとしてデプロイすることで再利用することもできます。

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

AndroidアプリケーションとiOSアプリケーションのどちらの場合も、それぞれのMAFデプロイメントには、デプロイメントのタイプ(リリースまたはデバッグ)とデプロイメント・ターゲット(シミュレータまたは実際のデバイス)の組合せに固有の異なるライブラリのセットが含まれています。さらに、それぞれのライブラリ・セットには、JVMのJARファイルが含まれます。アプリケーションのバインディング・レイヤーは、Objective-Cライブラリのコレクションであるこの仮想マシン内にあります。たとえば、MAFは、iOSシミュレータをターゲットとするデバッグ・デプロイメントに対して、JVM JARファイルと一連のライブラリをデプロイしますが、実際のiOSデバイスをターゲットとするデバッグ・デプロイメントに対しては、異なるJVM JARファイルと一連のライブラリをデプロイします。「プロパティ」ダイアログを使用してプロジェクトに対して宣言するライブラリは、図28-1に示すように、プロジェクト用デプロイメント・アーティファクトに含まれています。このダイアログにより、アプリケーション機能は実行時にこれらのライブラリにアクセスすることが可能になります。

ビュー・プロジェクトを右クリックして「プロパティ」を選択し、「プロパティ」ダイアログを開きます。ダイアログでJavaビルド・パスを選択し、「ライブラリ」タブをクリックします。

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

## 28.2 デプロイメント構成の使用

デプロイメント用モバイル・アプリケーションの準備は、プラットフォーム固有のデプロイメント構成の作成から始まります。構成では、iOSデバイス、Androidデバイス、デバッグiOSシミュレータまたはAndroidエミュレータにデプロイするアプリケーションをアーカイブにパッケージ化する方法を定義します。

構成と本番構成から選択できます。デプロイメントの間は、デフォルト・キーストアを使用するためにデバッグを選択する必要があります。

構成は次のことを実行します。

- パッケージおよびデプロイするアセンブリ・プロジェクトを選択します。

- デプロイ先のターゲットを選択します。ターゲットは、プラットフォーム(AndroidまたはiOS)の組合せであり、固有バージョンのMAFランタイムです。

- デプロイ先のデバイス・プロファイル(エミュレータまたはデバイス)を選択します。

- プラットフォーム固有(AndroidまたはiOS)の詳細オプションを選択します。

- デプロイするアプリケーションを指定します。

### 28.2.1 デプロイメント構成の作成方法

第2.2.2.3項「デプロイメント構成について」で説明するように、アプリケーションを作成するときに、アプリケーション用のデプロイメント・ターゲットを選択します。後でデプロイメント構成を作成するときに、使用するデプロイメント・ターゲットを選択します。これらの構成を使用してアプリケーションをデプロイしたり、MAF固有の構成ダイアログを使用してアプリケーションを編集したり、新規構築することができます。図28-2に示すように、構成の作成、管理および実行の各ダイアログは、デプロイメント構成ダイアログとも呼ばれ、デフォルト・デプロイメントを作成できます。デプロイメント構成は、必要な数だけ作成できます。

始める前に:

OEPEでモバイル・アプリケーションをデプロイできるようにするには、MAFの「プリファレンス」ページを使用してターゲット・プラットフォームのSDKを指定する必要があります。

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

デプロイメント構成を作成するには、次の手順を実行します。

1. 開発の場合、「実行」→デバッグ構成を選択します。

   本番の場合、「実行」→「実行構成」を選択します。

2. MAFアプリケーションに移動し、右クリックして「新」を選択し、新しい構成を作成します(図28-2を参照)。

3. 次の手順を実行します。

   - 構成のデフォルト名をそのまま使用するか、新しい構成名を入力します。

   - アセンブリ・プロジェクトを選択します。

   - 使用可能なもののリストからターゲットを選択し、使用可能なもののリストからデバイスまたはエミュレータを選択します。必要に応じて、リストをリフレッシュします。

   - 必要に応じて、デプロイ先にするデバイスのキーストアおよびキーの別名を選択します。

4. ただちにデプロイする場合は、「実行」をクリックします。構成を保存するには、「適用」をクリックします。または、「変更の保存」ダイアログで「閉じる」をクリックし、「はい」をクリックします。

   図28-2 実行構成の作成

### 28.2.2 デプロイメント構成の作成時の処理

「実行」ボタンまたは「デバッグ」ボタンをクリックしてアプリケーションをデプロイするとき、アプリケーションのパッケージングおよびデプロイメントがトリガーされます。OEPEによって、デプロイメント・ディレクトリおよび関連するサブディレクトリが作成されます。ビュー・プロジェクト(違った名前である必要があります)およびアセンブリ・プロジェクト用に機能アーカイブ・ファイル(FAR)も作成されます。これら2つのFARに加え、プロジェクトにインポートされたFARのコピーが、OEPEによって作成されます。最後に、パッケージがデバイスまたはエミュレータにデプロイされます。

デプロイ・アーティファクトをクリーンアップするには、一部のプロジェクトまたはすべてのプロジェクトに対して「クリーン」ダイアログを使用します。クリーンアップの対象:

- 一部のプロジェクト。これが、クリーンリビルドを行うのに最速の方法です。

  下で選択したプロジェクトのクリーンアップを選択し、クリーンアップするアセンブリ・プロジェクトを選択し、「OK」をクリックします。

- すべてのプロジェクト。これにより、すべてのユーザー・アーティファクトは、再ステージングおよびデプロイ前にリビルドされます。

  すべてのプロジェクトのクリーンアップを選択し、「OK」をクリックします。

実行構成を作成すると、メニュー・バーから緑色の実行矢印をクリックしてそれを選択できます。矢印をクリックすると、最後に使用された実行構成が選択されます。緑色の矢印の隣のドロップダウン・セレクタをクリックし、コンテキスト・メニューから実行する構成を選択することによって、別の実行構成を選択できます。

### 28.2.3 実行構成とデバッグ構成の相違点

実行構成およびデバッグ構成は両方とも「実行」メニューから起動でき、これらは、デバッグ構成が、デバッグ・オプションを設定する追加のタブである「デバッグ」タブを持っている点で違います。詳細は、第31章「MAFアプリケーションのテストおよびデバッグ」を参照してください。

- デバッグ - 開発ビルドにはこのオプションを選択します。デバッグ・ビルドを指定すると、デバッグ・シンボルが含まれます。

  デプロイメントの間は、デフォルト・キーストアを使用するためにデバッグを選択する必要があります。

  実行時、赤い三角形の中の感嘆符で表されるデバッグ・シンボルを重ねることで、デバッグ・モードにアプリケーションがデプロイされたことをMAFは示しています。

- 実行 - リリースの準備ができたビルドをライブラリなどとともに、リリース・ビットやライブラリなどとともにビルドします。

  ヒント: アプリケーションがリリース用にコンパイルされているかどうかは、デバッグ・モードではなく、実行モードを使用して、アプリケーションのパフォーマンスをテストします。

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

図28-3に示すように、デプロイメント構成を定義した後、実行構成ダイアログまたはデバッグ構成ダイアログからモバイル・アプリケーションをAndroidプラットフォームにデプロイできます。

デバッグ構成ダイアログを使用すると、完成したアプリケーションをAndroidエミュレータまたはテスト用のAndroidデバイスにデプロイできます。アプリケーションのテストおよびデバッグの終了後、実行構成ダイアログを使用してモバイル・アプリケーションをAndroidアプリケーション・パッケージ(`.apk`)・ファイルにバンドルし、Google Playなどのアプリケーション・マーケットプレイスなどを介してエンド・ユーザーに公開できます。

図28-3 Androidアプリケーションの「デプロイメント構成」ダイアログ

### 28.3.1 Androidデプロイメント構成の作成方法

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

始める前に:

Oracle Enterprise Pack Oracle Enterprise Pack for Eclipseのインストールの説明に従って、Android SDKをインストールおよびダウンロードします。

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

SDKおよびプラットフォーム用の場所のMAFプリファレンスも設定する必要があり、これはAndroid SDKパッケージ・ダウンロードの一部になっています

AndroidプラットフォームSDK用のMAFプリファレンスを設定するには、次の手順を実行します。

1. 「ウィンドウ」→「プリファレンス」を選択し、「プリファレンス」ダイアログを開きます。

2. 図28-4に示すように、「Oracle」→「モバイル・アプリケーション・フレームワーク」→「Android」を選択し、Androidのプリファレンス・ページを開きます。

   図28-4 Androidプリファレンスの設定

3. 「追加」をクリックして「SDKの選択」ダイアログを開き、Android SDKの場所に移動します。「OK」をクリックします。

SDK information for Android 4.4.2 (API 19)は、図28-5に示してあり、前のバージョンと違います。

注意: プッシュ通知には、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」および第28.3.1項「Androidデプロイメント構成の作成方法」も参照してください。

構成を作成するには、次の手順を実行します。

1. 「実行」→「実行構成」を選択して、「構成」ダイアログを開きます。

2. 図28-5に示すように、「構成」ダイアログで、構成の名前を入力します。

3. 利用可能なプロジェクトのリストからアセンブリ・プロジェクトを選択します。

4. アプリケーションIDを変更する場合は、デプロイされるバンドルIDに新しいIDを入力します。

   注意: Androidデバイスまたはエミュレータにアプリケーションが正しくデプロイされるようにするには、IDの先頭を数字やピリオドではなく、文字にする必要があります。たとえば、IDが925090のように(com.company.925090)完全に数値で構成されている場合、アプリケーションはデプロイできません。hello925090などの文字で始まるIDであれば(com.company.hello925090)、デプロイメントは正常に実行できます。

5. プラットフォーム・バージョンとMAFランタイム・バージョンの組合せであるターゲットを選択します。

6. ターゲット構成を選択します。つまり、アプリケーションをデプロイするデバイスまたはエミュレータのことです。

   注意: 場合によってはOEPEは、Androidエミュレータを検出できません。adbサーバーに関連付けられたデーモンが動作していないためです。デーモンが動作していないときは、OEPEはエラー・メッセージを表示します。 `ターゲット・デバイスが設定されていないか、選択したデバイスが無効です。デバイスがドロップダウンに表示されない場合は、「リフレッシュ」をクリックします。デバイスが見えない場合は、コマンドadb devicesを実行してデバイスのステータスを確認してください。` SDK/platform-toolsディレクトリから`adb devices`を実行すると、次のようにデーモンが起動します。
       <sdk-install>\adt-bundle-windows-x86_64-20130717\sdk\platform-tools>adb devices
       * daemon not running. starting it now on port 5037 *
       * daemon started successfully *
       List of devices attached
       emulator-5554 device
   OEPEによってエミュレータが検出されます。

7. キーストアを入力します。必要に応じて、「キーストアを選択」をクリックすると、「プリファレンス」ダイアログのAndroidキーストア・ページが開き、キーストアを追加できます。詳細は、第28.3.1.3項「Android署名オプションの定義」を参照してください。また、Android開発者のWebサイト(`http://developer.android.com/tools/publishing/app-signing.html`)で入手可能な「Signing Your Applications」で、アプリケーションの公開に関する情報も参照してください。

   図28-5 Android SDKおよび署名プロパティの設定

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

#### 28.3.1.1 詳細オプションの設定

Android詳細オプション・ページでは、図28-5に示すように、次のことができます。

- 「最小SDK APIレベル」、「ターゲットSDK APIレベル」、「バージョン・コード」、「ソース・ファイル」、「クラス・ファイル」、「Zipアラインメント」、「優先記憶域の場所」など、数多くの高度なオプションを設定します(図28-6を参照)。

  図28-6 SDKレベルの設定

- 図28-7に示すように、デフォルトのアプリケーション・イメージを変更します。

  図28-7 アプリケーション・イメージの設定

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

デプロイメント構成ダイアログの「メイン」タブと「共通」タブ、そして「詳細オプション」ボタンから起動するAndroid詳細オプション・ダイアログでは、`javac`コンパイラ・ツール・オプションの中で渡す値およびAndroid APIリビジョンも設定できます。

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

1. デプロイメント構成ダイアログで、「オプション」ボタンをクリックして「詳細オプション」ダイアログを開きます。

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

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>`属性の説明を参照してください。

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

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

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

始める前に:

キーストアが存在しない場合、OEPEによって作成されます。また、次の例に示すように、keytoolユーティリティを使用してキーストアを1つ作成できます。

    keytool -genkey
            -v
            -keystore c:\oepe\workspace\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では、キーストアを生成する前に、キーストアとキーのパスワード、およびキーの識別名フィールドを入力することを求められます。前述の例のキーストアには、10,000日間有効な単一のキーが含まれています。keytoolユーティリティの使用方法については、Java SEテクニカル・ドキュメント(`http://download.oracle.com/javase/index.html`)を参照してください。

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

キー・オプションを構成するには、次の手順を実行します。

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

2. 図28-8に示すように、「キーストアを選択」ダイアログの「追加」をクリックしてキーストアの場所に移動し、「OK」をクリックします。

   図28-8 キーストアの場所の選択

3. キーストアのパスワードを入力します。正しいパスワードを入力すると、「追加」ボタンが有効になります。

4. 図28-9に示すように、「追加」をクリックしてキーの別名の選択ダイアログを開きます。

   図28-9 キーの別名の選択

5. キーの別名のパスワードを入力し、「OK」をクリックします。

   これで、キーストアおよびキーの別名が、デプロイメント構成ダイアログで使用できます。

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

1. 次のいずれかを実行します。

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

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

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

2. 「デプロイメント構成」ダイアログで、`.apk`ファイルがデバッグ・モードまたはリリース・モードで署名された後は、デバイスまたはエミュレータにデプロイできます。図28-10に示すように、実行時にMAFは、赤い三角形の中の感嘆符で表されるデバッグ・シンボルをオーバーレイすることで、アプリケーションがデバッグ・モードでデプロイされたことを示しています。

   図28-10 デプロイメント・モード

#### 28.3.1.4 資格証明の保存に関する必知事項

キーストア・アクセス用の資格証明は、Eclipse Secure Storageに保存され、ここには、ワークスペース外のデータが保存されます。場所は通常ホーム・ディレクトリですが、OSプラットフォームに応じて特定の場所は変わります。

Secure Storageの場所を探すには、次の手順を実行します。

1. メイン・メニューから「ウィンドウ」→「プリファレンス」を選択して「プリファレンス」ダイアログを開きます。

2. ノード「一般」→「セキュリティ」→Secure Storageを展開してSecure Storageページを表示します。

3. 「コンテンツ」タブをクリックします。たとえば、`user-home``/.eclipse/org.elipse.equinox.security/secure_storage`のように、ストレージの場所がダイアログの下部に表示されます。

4. ノード「Oracle」→「Eclipse」→「ツール」→「oepe」→「maf」→「Android」→「キーストア」を展開すると、保存されているパスワードを確認できます。

   「プリファレンス」ダイアログの「Oracle」→「モバイル・アプリケーション・フレームワーク」→「Android」→「Androidキーストア」ページに、宣言されているキーストアごとにノードがあります。

   ノードをクリックしてデータを表示します(パスワードは不明瞭化されています)。

注意: iOSのキーはMac固有のものであるため、キーをEclipseに保存する必要はありません。iOS XcodeBuildは、起動時に指定されるmobileprovisionに基づいてMac Keychainから直接抽出します(「プリファレンス」ダイアログの「Oracle」→「モバイル・アプリケーション・フレームワーク」→「Android」→「Androidキーストア」ページから構成されます)。

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

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

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

図28-11には、低密度、中密度、高密度および超高密度ディスプレイを装備するデバイスでの表示にアプリケーションで使用されるアプリケーション・アイコンのイメージと縦向きのスプラッシュ画面用のイメージを選択する様子が示されています。

始める前に:

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

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

1. 「実行」→「実行構成」をクリックして、デプロイメント構成ダイアログを開きます。

2. 「オプション」をクリックしてAndroid詳細オプション・ダイアログを開き、「アプリケーション・イメージ」タブをクリックします。

   変更するイメージの密度を選択して適切なノードを展開し、変更するイメージを選択します。

3. 「参照」をクリックして使用する新しいイメージを選択し、「OK」をクリックします。

#### 28.3.1.6 OEPEがAndroidアプリケーションにイメージをデプロイした場合の処理

表28-1に示されているように、各イメージ・ファイルは、`drawable`オブジェクトにちなんで名付けられた`drawable`というサブディレクトリにコピーされます。詳細は、Android開発者のWebサイト(`http://developer.android.com/reference/android/graphics/drawable/Drawable.html`)を参照してください。それぞれの`drawable`ディレクトリは、イメージ密度(`ldpi`、`mdpi`、`hdpi`および`xhdpi`)と向き(`port`、`land`)に対応します。これらのディレクトリ内で、OEPEは、各アイコン・イメージ・ファイルの名前を`adfmf_icon.png`に、各スプラッシュ画面イメージの名前を`adfmf_loading.png`に変更します。

注意: `assembly project``\.main.android`の内容を表示するには、プロジェクト・エクスプローラのデフォルトのビューを変更する必要があります。詳細は、第2.2.2項「MAFアプリケーションを作成する場合の処理」を参照してください。

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

ソース・ファイル(...\res\android) | 一時デプロイメント・ファイル(...\.main.android\build\release\res)
--- | ---
`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`

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

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

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

始める前に:

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

- Androidプラットフォームの「プリファレンス」ページでキーストア・パスワードおよびキーの別名の詳細を構成します(「ウィンドウ」→「プリファレンス」→「Oracle」→「モバイル・アプリケーション・フレームワーク」→「Android」→Androidキーストアを選択してアクセスします)。

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

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

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

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

  注意: Androidエミュレータは一度に1つのみ実行できます。

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

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

1. 「実行」→「実行構成」を選択するか、「実行」→「デバッグ構成」を選択します。MAFアプリケーション・ノードの下で、Androidデプロイメント・プロファイルを選択します。

2. ターゲットが使用するものであることを確認し、「実行」または「デバッグ」をクリックします。

   状況により、デプロイメント・プロセスがハングすることがあります。その場合、adbサーバーを強制終了してから再起動し、デプロイメントを再試行してください。

3. 図28-13に示すように、コンソールでデプロイメント・ログを確認します。デプロイメント・ログには、デプロイヤがAndroidエミュレータの実行中インスタンスを検出し、Androidデバッグ・ブリッジ・サーバーを起動したことが示されます。

   図28-13 デプロイメント・ログ

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

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

始める前に:

Oracle Enterprise Pack Oracle Enterprise Pack for Eclipseのインストールの説明に従って、OEPEをホストする開発コンピュータにデバイスを接続します。

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

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

1. 「実行」→「実行構成」を選択して「実行構成」ダイアログを開きます。MAFアプリケーション・ノードの下で、Androidデプロイメント・プロファイルを選択します。

2. 使用するターゲットを確認し、「実行」をクリックします。

3. 図28-13に示すように、コンソールでデプロイメント・ログを確認します。デプロイメント・ログには、デプロイヤがAndroidエミュレータの実行中インスタンスを検出し、Androidデバッグ・ブリッジ・サーバーを起動したことが示されます。

   図28-14 デプロイメント・ログ

1. 「実行」→「実行構成」を選択するか、「実行」→「デバッグ構成」を選択します。MAFアプリケーション・ノードの下で、Androidデプロイメント・プロファイルを選択します。

2. ターゲットが使用するものであることを確認し、「実行」または「デバッグ」をクリックします。

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

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

始める前に:

実行構成を作成します。

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

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

1. 「実行」→「実行構成」を選択して実行構成を作成します。MAFアプリケーション・ノードの下で、Androidデプロイメント・プロファイルを選択します。

2. 使用するターゲットを確認し、「実行」をクリックします。

3. コンソールでデプロイメント・ログを確認します。

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

### 28.3.5 .apkファイルを作成する場合のOEPEでの処理

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

- `adfmsrc`の内容

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

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

- `logging.properties`ファイル

- JVM 1.4ファイル

表28-2 .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`ディレクトリにパッケージ化されます。

### 28.3.6 最近使用されたデプロイメント構成の選択

デプロイメント・アクションを選択した後、OEPEによって、メイン・ツールバーに「デバッグ」ボタンおよび「実行」ボタンへのショートカットが作成されます(図28-15を参照)。下向き矢印をクリックし、同じデプロイメント・アクションを使用してアプリケーションを簡単に再デプロイできるようにする構成を選択します。

図28-15 最近使用した構成の選択

### 28.3.7 コンソールでのデバイス/エミュレータ・ログインの表示

OEPEでは、デバイスまたはエミュレータからのログ出力は、図28-16に示すように、コンソール内にストリームされます。これはデバッグにきわめて有効です。詳細は、第31.4.1項「プロパティ・ファイルを使用したロギングの構成方法」を参照してください。

図28-16 デバイスまたはエミュレータのログの表示

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

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

図28-17 「デプロイメント構成」ダイアログ(iOSアプリケーション用)

### 28.4.1 iOSデプロイメント構成の作成方法

iOSの場合は、「デバッグ構成」ダイアログを使用して、iOSアプリケーションのビルド構成と、スプラッシュ画面イメージおよびアプリケーション・アイコンの場所を定義します。

始める前に:

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

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

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

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

Xcodeをダウンロードしたら、iOSプラットフォームの「プリファレンス」ページで、そのxcodebuildツールの場所を入力する必要があり、iOSシミュレータへのデプロイメントの場合は、iOSシミュレータのSDKの場所も入力します。詳細は、Oracle Enterprise Pack Oracle Enterprise Pack for Eclipseのインストールを参照してください。

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

第28.4.1.2項「デバイス署名オプションの設定」で説明されているように、モバイル・アプリケーションを(iOSシミュレータへのデプロイメントとは対照的に) iOSデバイスにデプロイするには、iOSプロビジョニング・プロファイルからプロビジョニング・プロファイルと証明書の両方を取得する必要があります。

デプロイメント構成を作成するには、次の手順を実行します。

1. 図28-18に示すように、「実行」→「デバッグ構成」を選択します。

   図28-18 iOSオプションの設定

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

   - アセンブリ・プロジェクト - 使用可能なプロジェクトのリストから選択します。

   - デプロイされるバンドルID - 必要に応じて、会社のドメイン名を特定し、このアプリケーションに使用するバンドルIDを入力します。デプロイされるバンドルIDは、iOSデバイスにインストールされているアプリケーションごとに一意である必要があり、逆パッケージ・スタイル命名規則(つまり、com.<organization name>.<company name>)に準拠している必要があります。詳細は、iOS開発者ライブラリ(http://developer.apple.com/library/ios/navigation/`)で利用できる『App Distribution Guide』`を参照してください。iOS Provisioning Portalを使用したバンドル・シードIDの取得の詳細は、第28.4.5.3項「アプリケーションIDの登録」を参照してください。また、第3.3項「アプリケーション機能の基本情報の定義方法」も参照してください。

     注意: デプロイされるバンドルIDにはスペースは使用できません。

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

   - 「ターゲット」 - 「プリファレンス」ダイアログの構成されているターゲットのリストから選択するか、「ターゲット」をクリックして新規ターゲットを追加します。

   - 「ターゲットの構成」

     - iOSデプロイ・ターゲット - デバイスまたはシミュレータを選択します。

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

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

     - モバイル・プロビジョニング・プロファイルの選択 -

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

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

     - 「詳細オプション」 - 「オプション」をクリックして「詳細オプション」ダイアログを開き、ここで図28-19に示すように、様々なオプションを設定できます。

       図28-19 最小iOSバージョンの設定

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

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

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

始める前に:

iOSアプリケーション(`.ipa`ファイル)をiOSデバイスにデプロイするには、インストールの必須コンポーネントであるプロビジョニング・プロファイルと、デバイス上の開発者とアプリケーションを特定する署名済証明書が必要です。これらは、第28.4.5項「iOSデバイスへのアプリケーションのデプロイに関する必知事項」の説明に従ってiOSプロビジョニング・ポータルから取得する必要があります。また、プロビジョニング・プロファイルを、「Oracle」→MAF→「iOS」ページ(「プリファレンス」ダイアログ) (「ウィンドウ」メニューから使用可能)で登録します。iOSデプロイ・ターゲット用のiTunesまたはパッケージを選択するとき、デバッグ構成または実行構成でプロビジョニング・プロファイルを選択します。

実行構成またはデバッグ構成でプロビジョニング・プロファイルを選択すると、デプロイされるバンドルIDの接頭辞がそこから推論されます。

また、第28.4.1.2項「デバイス署名オプションの設定」の説明に従って、iOSプラットフォームの「プリファレンス」ページでプロビジョニング・プロファイルの場所と証明書の名前を入力する必要があります。

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

1. 図28-18に示すように、デプロイメント構成ダイアログを開きます。

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

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

   - 「実行」→「実行構成」 - リリースに必要なファイル、アーティファクトおよびライブラリとともにビルドをコンパイルする場合にこれを選択します。

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

3. iOSの場合のみ、Oracle Mobile Security Suiteを有効にします(「Oracleモバイル・セキュリティ・スイートの有効化」)。Oracle Mobile Security Suiteによるコンテナ化を有効にする場合に選択します。このオプションは、iTunesへのデプロイメントにのみ適用され、パッケージまたはシミュレータへのデプロイメントでは無視されます。詳細は、第28.8項「Oracle Mobile Security Suiteでのデプロイ」を参照してください。

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

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

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

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

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

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

2. 「iOS」→iOSモバイル・プロビジョニングを選択します。

3. 図28-20に示すように、ページのモバイル・プロビジョニング情報セクションのモバイル・プロビジョニング・ファイルにプロビジョニング・プロファイルの場所を入力します。

4. OEPEによって「証明書」が入力されます。

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

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

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

独自のカスタム・イメージをアプリケーションに追加できます。

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

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

図28-21 カスタム・イメージの追加

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

1. 「実行」→「デバッグ構成」を選択して、デプロイメント構成を開きます。

2. 「オプション」をクリックしてiOS詳細オプション・ダイアログを開きます。

3. 「アプリケーション・イメージ」タブをクリックし、iPhoneまたはiPodのイメージを変更するかどうかを選択します。

4. 変更するイメージを選択し、「参照」を選択して使用するイメージ・ファイルを選択します。このイメージ・ファイルは、現在のアプリケーション内に存在している必要があります。

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

   詳細は、第28.4.1.4項「iTunesアートワークに関する必知事項」を参照してください。

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

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

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

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

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

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

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

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

図28-23 デバイスの向きの選択

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

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

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

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

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

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

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

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

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

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

始める前に:

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

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

1. 図28-24に示すように、「実行」→「実行構成」を選択して、「実行構成」ダイアログを開きます。

   図28-24 「実行構成」ダイアログ

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

   - アセンブリ・プロジェクト - 使用可能なプロジェクトのリストから選択します。

   - デプロイされるバンドルID - 必要に応じて、会社のドメイン名を特定し、このアプリケーションに使用するバンドルIDを入力します。デプロイされるバンドルIDは、iOSデバイスにインストールされているアプリケーションごとに一意である必要があり、逆パッケージ・スタイル命名規則(つまり、com.<organization name>.<company name>)に準拠している必要があります。詳細は、iOS開発者ライブラリ(http://developer.apple.com/library/ios/navigation/`)で利用できる『App Distribution Guide』`を参照してください。iOS Provisioning Portalを使用したバンドル・シードIDの取得の詳細は、第28.4.5.3項「アプリケーションIDの登録」を参照してください。また、第3.3項「アプリケーション機能の基本情報の定義方法」も参照してください。

     注意: デプロイされるバンドルIDにはスペースは使用できません。

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

   - 「ターゲット」 - 「プリファレンス」ダイアログの構成されているターゲットのリストから選択するか、「ターゲット」をクリックして新規ターゲットを追加します。

   - 「ターゲットの構成」

     - iOSデプロイ・ターゲット - `「シミュレータ」`を選択します。

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

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

     - モバイル・プロビジョニング・プロファイルの選択 -

     - iOS配布パッケージ(ipa) - 必要に応じて、`.app`ファイルの名前を入力します。`「アプリケーションのシミュレータへのデプロイ」`オプションを選択すると、MAFによって.appファイルが作成されます。または、デフォルトの名前を使用します。

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

     - 「詳細オプション」 - 「オプション」をクリックして「詳細オプション」ダイアログを開き、様々なオプションを設定します。

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

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

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

始める前に:

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

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

- iOSプラットフォームのプリファレンス・ページで、`iTunesに自動的に追加`フォルダの場所(アプリケーションのデプロイメントに使用される場所)を設定します(図28-25を参照)。

  ヒント: ユーザーのホーム・ディレクトリ(`/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フォルダの場所を設定します(例: `図28-25`の/Developer/usr/bin)。

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

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

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

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

- iOS開発者ライブラリ(http://developer.apple.com/library/ios/navigation/`)から入手できる『App Distribution Guide』`を参照してください。

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

1. 図28-18に示すように、「実行」→「デバッグ構成」を選択します。

   図28-26 iOSオプションの設定

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

   - アセンブリ・プロジェクト - 使用可能なプロジェクトのリストから選択します。

   - デプロイされるバンドルID - 必要に応じて、会社のドメイン名を特定し、このアプリケーションに使用するバンドルIDを入力します。デプロイされるバンドルIDは、iOSデバイスにインストールされているアプリケーションごとに一意である必要があり、逆パッケージ・スタイル命名規則(つまり、com.<organization name>.<company name>)に準拠している必要があります。詳細は、iOS開発者ライブラリ(http://developer.apple.com/library/ios/navigation/`)で利用できる『App Distribution Guide』`を参照してください。iOS Provisioning Portalを使用したバンドル・シードIDの取得の詳細は、第28.4.5.3項「アプリケーションIDの登録」を参照してください。また、第3.3項「アプリケーション機能の基本情報の定義方法」も参照してください。

     注意: デプロイされるバンドルIDにはスペースは使用できません。

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

   - 「ターゲット」 - 「プリファレンス」ダイアログの構成されているターゲットのリストから選択するか、「ターゲット」をクリックして新規ターゲットを追加します。

   - 「ターゲットの構成」

     - iOSデプロイ・ターゲット - デバイスまたはシミュレータを選択します。

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

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

     - モバイル・プロビジョニング・プロファイルの選択 -

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

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

     - 「詳細オプション」 - 「オプション」をクリックして「詳細オプション」ダイアログを開き、ここで図28-19に示すように、様々なオプションを設定できます。

       図28-27 最小iOSバージョンの設定

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

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

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

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

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

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

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

図28-28 iOS Provisioning Portal

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

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

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

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

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

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

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

図28-29 明示的なアプリケーションID

8E549T7128.com.oracle.*のように、アプリケーション名にワイルドカード文字(*)を使用すると、一連のアプリケーション間でアプリケーションIDを共有できます。たとえば、com.oracle.MAF.*という管理者名がiOSプロビジョニング・ポータルにある場合、これにより、異なるアプリケーション(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と一致している必要があります。

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

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

始める前に:

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

- 図28-25に示すように、iOSプラットフォームの「プリファレンス」ページで、`自動的にiTunesに追加`ディレクトリの名前を入力します。

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

- 実際のiOSデバイス上でアプリケーションをテストします。第28.4.3項「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オプション」ページで、ビルド・モードとしてアプリケーション配布ガイド・リリースを選択し、「OK」をクリックします。

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

1. 「実行」→「実行構成」を選択し、iOSデプロイメント構成を選択します。

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

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

   - デプロイされるバンドルID - Java言語のようなパッケージ名を含む一意な名前で、iOSプロビジョニング・ポータルから生成されるバンドル・シードの接頭辞が付いたもの(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」の項を参照してください。

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

MAFビュー・コントローラ・プロジェクトによる再利用を可能にするために、アプリケーション機能(一般的に、MAF AMXまたはローカルHTMLとして実装されるもの)は、機能アーカイブ(FAR)というアーカイブにバンドルされます。FARは、モバイル・アプリケーションが使用できるアプリケーション機能のアーティファクトを格納したJARファイルです。FARには、Javaクラスを含めることも可能ですが、これらのクラスはコンパイルする必要があります。次の例は、1つの`maf-feature.xml`ファイルと1つの`connections.xml`ファイルを含むFARの内容を示しています。

    connections.xml (or some form of connection metadata)

      META-INF
         jar-connections.xml
         jar-adf-config.xml
         adfm.xml
         maf-feature.xml
         MANIFEST.MF
         task-flow-registry.xml

      oracle
        application1
          mobile
            DataControls.dcx
             DataBindings.cpx
             pageDefs
               view1PageDefs

      model
         Class1.class

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

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

1. 機能アーカイブ・ファイルの作成 - ビュー・プロジェクトをFARとしてエクスポートすることで、機能アーカイブを作成します。

2. モバイル・アプリケーション作成時の機能アーカイブ・ファイルの使用 - これには、アプリケーションへのFARの登録、およびアプリケーションへのFAR内の機能の登録が含まれます。

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

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

### 28.5.1 モバイル機能アーカイブ・ファイルの作成方法

OEPEのエクスポート・ウィザードを使用して`.far`ファイルを作成します。

始める前に:

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

モバイル機能を機能アーカイブ・ファイルとしてパッケージ化する方法

1. 「ファイル」をクリックし、「エクスポート」を選択します。

2. 図28-30に示すように、「エクスポート」ウィザードで、「Oracle」→「モバイル・アプリケーション・フレームワーク」を展開し、モバイル機能アーカイブ(FAR)を選択します。

   図28-30 モバイル機能アーカイブ・ファイルの作成

3. 図28-31に示すように、「次へ」をクリックし、アーカイブする機能を含んでいるビュー・プロジェクトを選択し、アーカイブ・ファイルの名前を入力します。

   注意: プロファイルには適切な名前を付けてください。そうしないと、アーカイブ名が同じアプリケーション機能を複数アップロードしたときに、問題が発生する可能性があります。

   図28-31 モバイル機能アーカイブ・ファイルの名前とパスの入力

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

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

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

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

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

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

   図28-32 「ファイル・エクスポートのサマリー」ページ

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

外部アプリケーションからFARを使用するには、FARをアプリケーションの`maf-application.xml`ファイルに登録する必要があります。図28-33は、ファイル・システム接続によりモバイル・アプリケーションで使用可能となる機能アーカイブを示しています。

図28-33 MAFアプリケーション・エディタにデプロイされた機能アーカイブJAR

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

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

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

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

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

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

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

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

ディレクトリ | 説明
--- | ---
`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ファイル内に配置されます。 OEPEで作成された`.maa`ファイルは、OEPEでのみインポートできます。JDeveloperにはインポートできません。
`ExternalLibs` | 元のモバイル・アプリケーションの外部にあるアプリケーション・レベルのライブラリ(FARを含む)が格納されます。
`META-INF` | `maf.properties`および`logging.properties`ファイルが格納されます。
`resources` | 次のディレクトリが含まれます。 `android`: アプリケーション・アイコンやスプラッシュ画面に使用される、Android固有のイメージ・ファイルが格納されます。 `ios`: アプリケーション・アイコンやスプラッシュ画面に使用される、iOS固有のイメージ・ファイルが格納されます。 security: `cacerts`ファイル(キーストア・ファイル)が格納されます。

表28-4に一覧表示されたアーティファクトに加えて、`.maa`ファイルには、元のモバイル・アプリケーションの内部にあるFARまたはJARファイルが格納されたフォルダが含まれます。第28.7.2項「MAFアプリケーション・アーカイブ・ファイルをインポートする場合の処理」も参照してください。

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

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

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

モバイル・アプリケーションをMAFアプリケーション・アーカイブ・ファイルにパッケージ化するには、次の手順を実行します。

1. 「ファイル」をクリックし、「エクスポート」を選択します。

2. 図28-34のように、「エクスポート」ウィザードで、「Oracle」→「モバイル・アプリケーション・フレームワーク」を展開し、モバイル・アプリケーション・アーカイブ(MAA)を選択します。

   図28-34 モバイル・アプリケーション・アーカイブ・ファイルの作成

3. 図28-35に示すように、「Next」をクリックし、アーカイブするアプリケーションの名前を選択し、モバイル・アプリケーション・アーカイブの名前を入力します。

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

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

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

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

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

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

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

注意: `.maa`ファイルは、1つ以上の同じプロジェクトをすでに含んだワークスペースにはインポートできません。かわりに、`.maa`ファイルを異なるワークスペースにインポートする必要があります。

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

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

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

1. 「File」→「インポート」を選択します。

2. 「インポート」ウィザードで、「Oracle」を展開し、モバイル・アプリケーション・アーカイブ(MAA)を選択します。「次へ」をクリックします。

3. 「モバイル・アプリケーション・アーカイブ(MAA)のインポート」ページで、「参照」をクリックし、MAAファイルに移動します。「次へ」をクリックします。

4. デプロイメント・ターゲットの構成ページで、デプロイする先のターゲットを選択し、「終了」をクリックします。

### 28.7.2 MAFアプリケーション・アーカイブ・ファイルをインポートする場合の処理

MAFでは、`.maa`ファイルのインポート後に次のことを実行します。

1. アセンブリ・プロジェクト、アプリケーション・プロジェクトおよびビュー・プロジェクトごとにプロジェクトが作成されます。

2. `.maa`ファイルからファイルが解凍されます。

## 28.8 Oracle Mobile Security Suiteでのデプロイ

Oracle Mobile Security Suite (OMSS)は、モバイル・アプリケーション向けにエンタープライズレベルのセキュリティを備えています。デプロイメント時のコンテナ化により、データ漏えいを防止し、アプリケーション・データおよびデータベース・コンテンツを暗号化します。OMSSによるMAFアプリケーションのコンテナ化の詳細は、第2.4項「エンタープライズ配布のためのMAFアプリケーションのコンテナ化」を参照してください。

始める前に:

OMSSコンテナ化ツールをインストールしている必要があります。このツールは、`c14n`というファイル名のコマンドライン・ユーティリティです。OMSSをダウンロードし、Oracle Technology Networkでインストールに関する説明を読んでください。

`http://www.oracle.com/technetwork/middleware/id-mgmt/overview/default-2099033.html`

注意: iOSの場合は、第28.4.1.2項「デバイス署名オプションの設定」の説明に従って、iOSプラットフォームのプリファレンス・ページでプロビジョニング・プロファイルの名前も選択している必要があります。 コンテナ化はAndroidではサポートされていません。 OEPEでは、OMSSでコンテナ化されたモバイル・アプリケーションをデフォルト名のエミュレータにデプロイできません。

1. 「実行」→「実行構成」を選択します。

2. 「ターゲットの構成」ペインで、MAFアプリケーションを選択し、新規の実行構成を作成するか、既存の実行構成を選択します。

3. 「メイン」タブの下部にある「コンテナ化」ペインで、「Oracleモバイル・セキュリティ・スイートの有効化」を選択して、コンテナ化ツールの場所をクリックします。これにより、「プリファレンス」メニューから「コンテナ化」ダイアログが表示されます(図28-36を参照)。

   図28-36 コンテナ化ツールの場所の指定

4. 「参照」アイコンをクリックし、ローカル・ファイル・システムでOracle Mobile Security Appコンテナ化ツールの場所を探します。

5. 「OK」をクリックしてコンテナ化ツールを選択します。

6. 「実行構成」ダイアログで、「実行」を選択します。

   注意: iOSの場合、コンテナ化はiTunesデプロイメントでのみサポートされています。配布パッケージまたはシミュレータへのデプロイメントでは、コンテナ化された`.ipa`ファイルを作成することはありません。

   Oracle Mobile Security Suiteにより保護されたプラットフォーム固有のファイル(Androidの場合)が作成されます。

   - iOSの場合は`.ipa`。

   - Androidの場合は`.apk`。OMSSにより、アプリケーションにコンパイルされる中間の`.h`ヘッダー・ファイルが作成される場合があります。

   コンテナ化されたアプリケーションをデバイスに追加すると、そのアプリケーションにロック・アイコンが表示されます(図28-37を参照)。

図28-37 コンテナ化を表すロック・アイコンが表示されたモバイル・アプリケーション

### 28.8.1 OMSSでアプリケーションをコンテナ化する場合の処理

Oracle Mobile Security Suite (OMSS)でコンテナ化されたMAFアプリケーションをデプロイすると、現在利用可能なアプリケーションのリストが表示されるOMSSモバイル・アプリケーション・カタログにアップロードできます。アプリケーションをエンド・ユーザーに公開する前に、OMSS管理者は様々なポリシーをアプリケーションに適用して、その機能を管理します。OMSSサーバー側で特定のポリシーを適用する前に、OMSS管理者は、Oracle Mobile Security Appコンテナ化ツールでコンテナ化されたアプリケーションのセキュリティおよび共有の要件を管理できます。遷移中のデータ、およびモバイル・デバイス上でコンテナ化されたアプリケーション内にローカルに格納されているデータが暗号化されます。暗号化されたデータの格納には、ファイル、データベース、アプリケーション・キャッシュおよびユーザー・プリファレンスなどのアプリケーション・データが含まれます。

OMSSデータ漏洩保護および暗号化を適用すると、ユーザーがアプリケーションをダウンロード・サイトから利用可能な状態にすることができます。

注意: OMSSでコンテナ化されるiOS MAFアプリケーションは、内部ダウンロード・サイトまたはエンタープライズ・アプリケーション・ストア経由でしかユーザーに配信できません。コンテナ化されたiOS MAFアプリケーションは、Apple App Storeにアップロードできません。 この制限は、OMSSでコンテナ化されたAndroid MAFアプリケーションには適用されません。これらのアプリケーションは、内部ダウンロード・サイト、エンタープライズ・アプリケーション・ストアまたはGoogle Play経由で配信できます。

デバイスおよびワークスペースにプロビジョニングされたMAFアプリケーションを管理するために、システム管理者がOMSSモバイル・アプリケーション・カタログをどのように使用するかの詳細は、『Oracle Mobile Security Suiteの管理』の「デバイスおよびワークスペースの管理」を参照してください。

次のOMSSデータ漏えい保護ポリシーでは、ユーザーがアプリケーション内のデータをどのように共有できるか、およびそのデータを共有できるかどうかを制限します。

- 電子メールの許可では、アプリケーションから電子メールを送信する機能を制限できます。

- インスタント・メッセージの許可では、アプリケーションからインスタント・メッセージを送信する機能を制限できます。

- ビデオ・チャットの許可では、FaceTimeなどのサービス経由で情報を共有する機能を制限します。

- ソーシャル・メディアの許可では、FacebookやTwitterなどのサービス経由で情報を共有する機能を制限します。

- 印刷の許可では、ユーザーが印刷する機能を制限します。

- ファイル共有の制限では、ユーザーがセキュア・エンタープライズ・ワークスペースの外部のファイルを共有する機能を制限します。

- コピー/貼付けの制限では、セキュア・コンテナ、コンテナ化されたアプリケーション内、またはコンテナ化されたアプリケーション間のコピー/貼付けを許可しますが、セキュア・エンタープライズ・ワークスペースの外部のアプリケーションに対しては許可しません。

- コンテナへのリダイレクトの許可では、Mobile Security Containerワークスペースの外部のアプリケーションがURLをコンテナにリダイレクトできないようにします。

- メディア・ギャラリへの保存の許可では、イメージ、ビデオおよびオーディオ・ファイルがメディア・ギャラリおよびフォト・ストアに保存されないようにします。

- ローカルの連絡先への保存の許可では、セキュア・エンタープライズ・ワークスペース・アプリケーション内部の連絡先がネイティブ・デバイスの連絡先アプリケーションに保存されないようにします。

- コンテナからリダイレクトの許可では、Mobile Security ContainerワークスペースからのvAppまたはコンテナ化されたアプリケーションが、Mobile Security Containerワークスペースまたはコンテナ化されたアプリケーションの外部にURLをリダイレクトできないようにします。