Androidモバイルアプリのラッピング

本記事では、Citrix Endpoint Management™管理者がサードパーティ製エンタープライズアプリをラッピングする方法と、開発者がISVアプリをラッピングする方法について説明します。Androidモバイルアプリをラッピングするには、macOSグラフィカルインターフェイスツールとJavaコマンドラインツールを含むMDX Toolkitを使用します。コマンドラインツールにはカスタマイズオプションがあり、アプリのラッピングプロセスを自動化するスクリプトから参照でき、一部のMDXポリシーを事前に設定できます。

ラッピングされたアプリのファイルタイプは.mdxです。この.mdxファイルをEndpoint Managementコンソールにアップロードし、そこでEndpoint Management Storeが適用する特定のアプリの詳細とポリシー設定を構成します。ユーザーがサインオンすると、アプリはアプリストアに表示されます。ユーザーはその後、アプリを購読、ダウンロード、およびデバイスにインストールできます。

  • 次の図は、MDX Toolkitのインストールからモバイル生産性アプリのテストまでのアプリラッピング手順の概要を示しています。関連トピックは図の下に記載されています。

  • Androidアプリのラッピングフロー

1番の詳細については、以下を参照してください。

重要:

ユーザーデバイスが、アプリのラッピングに使用されたMDX Toolkitのバージョンと互換性のあるSecure Hubのバージョンに更新されていることを確認してください。そうしないと、ユーザーは非互換性に関するエラーメッセージを受け取ります。詳細については、「Endpoint Managementの互換性」を参照してください。

グラフィカルインターフェイスを使用したISVアプリのラッピング

次の手順では、Google Playストアから展開するISVアプリをラッピングする一般的なプロセスについて説明します。

  1. ツールキットを使用してアプリをラッピングする前に、必要に応じて元のバージョンに戻せるように、それらのアプリのオリジナルバージョンを必ずバックアップしてください。

  2. iOSのアプリケーションフォルダーからMDX Toolkitを起動し、[For Independent Software Vendors (ISVs)]を選択して、[Next]をクリックします。

    MDX Toolkitウィザードの画像

  3. [Deploy from App Store]画面で、アプリを選択し、[Next]をクリックします。

  4. [User Settings]画面で、アプリストアのURLを既にお持ちの場合は入力します。URLがない場合は、https://play.google.com/store/apps/details?id=com.citrixのようなプレースホルダーを入力します。URLは後で更新できます。

    Premiumアプリの場合は[MDX apps]を、Generalアプリの場合は[App Store apps]を選択します。

    MDX Toolkitのユーザー設定画面の画像

  5. [Verify App Details]画面で、必要に応じて詳細を更新します。

  6. キーストアを参照し、[Create]をクリックします。

    MDX ToolkitのApp Store URLオプションの画像

    1. アプリを保存します。

    MDX保存オプションの画像

    GUIツールがアプリのラッピングを完了すると、アプリのファイル名に_andrが含まれます。

コマンドラインを使用したエンタープライズAndroidアプリのラッピング

エンタープライズアプリのラッピングを使用して、カスタム(社内)アプリや一部のサードパーティ製アプリをラッピングできます。サードパーティ製アプリは、アプリベンダーから直接入手する必要があります。エンタープライズアプリのラッピングでは、Androidアプリケーション(.apk)から始めます。ツールキットを使用してアプリをラッピングする前に、必要に応じて元のバージョンに戻せるように、それらのアプリのオリジナルバージョンをバックアップしてください。

次の例は、デフォルト設定を使用した基本的なアプリラッピングコマンドを示しています。アプリは提供されたキーストアで署名されます。キーストアは、Androidアプリの署名に使用される証明書を含むファイルです。キーストアに複数の秘密鍵が含まれている場合は、キーエイリアスを指定できます。キーストアは一度作成します。その後、ラッピングするアプリの署名にキーストアを使用できます。以前に展開したアプリの新しいバージョンをラッピングする際に同じキーストアを使用しない場合、そのアプリのアップグレードは機能しません。ユーザーは新しいバージョンをインストールする前に、古いバージョンを手動で削除する必要があります。

太字の情報は、ご使用のシステムに合わせて変更してください。末尾のバックスラッシュは、コマンドが次の行に続くことを示します。コマンドを実行する前に、これらの記号を削除してください。

注:

/Applications/ディレクトリは制限されているため、次のコマンドをスーパーユーザーモードで実行する必要がある場合があります。これを行うには、コマンドの前にsudoを追加します。この制限されたディレクトリから実行する場合、コンピューターのパスワードの入力を求められます。

java -jar /Applications/Citrix/MDXToolkit/ManagedAppUtility.jar \
wrap \
-in ~/Desktop/SampleApps/Sample.apk \
-out ~/Desktop/SampleApps/Sample.mdx \
-keystore ~/Desktop/MyCompany.keystore \
-storepass MyKeystorePassword \
-keyalias MyCompanyKeyAlias \
-keypass MyKeyAliasPassword
<!--NeedCopy-->
  • 太字の情報を変更した後、上記のコマンドに追加できるオプションの例を次に示します。

  • -appName “ラッピングされたサンプルアプリ”
  • -appDesc “これは新しくラッピングされたAndroidアプリケーションです。”

さらに、開発中にリリース用キーストアが利用できない場合は、次のコマンドを使用して、キーで署名されたモバイルアプリの小売ビルドを作成します。

java -jar /Applications/Citrix/MDXToolkit/ManagedAppUtility.jar \
wrap \
-in ~/Desktop/SampleApps/Sample.apk \
-out ~/Desktop/SampleApps/Sample.mdx \
-keystore ~/Desktop/MyCompany.keystore \
-storepass MyKeystorePassword \
-keyalias MyCompanyKeyAlias \
-keypass MyKeyAliasPassword \
-  -createCert
<!--NeedCopy-->
  • オプションの詳細については、「コマンドオプション」を参照してください。インラインドキュメントについては、-helpオプションを使用してください。

  • コマンドラインによるISV Androidアプリのラッピング

  • ツールキットを使用してアプリをラッピングする前に、必要に応じて元のバージョンに戻せるように、それらのアプリのオリジナルバージョンを必ずバックアップしてください。Android用のラッピングされたISVアプリケーションを生成するには、以下の基本的なラッピングコマンドから始めます。
-  java -jar /Applications/Citrix/MDXToolkit/ManagedAppUtility.jar \
-  wrap \
-  -in ~/Desktop/SampleApps/Sample.apk \
-  -out ~/Desktop/SampleApps/Sample.mdx \
-  -keystore ~/Desktop/MyCompany.keystore \
-storepass MyKeystorePassword \
-keyalias MyCompanyKeyAlias \
-  -keypass MyKeyAliasPassword \
-createCert
<!--NeedCopy-->
  • アプリをISVアプリとしてラッピングするには、-apptype パラメーターを次のように設定する必要があります。

  • Premium: 一部のCitrix®ポリシーが管理対象外のユーザーにも適用されるPremiumアプリとしてアプリをラッピングするには、次のオプションを追加します: -apptype Premium
  • General: 管理対象外のユーザーに対してCitrixポリシーが適用されないGeneralアプリとしてアプリをラッピングするには、次のオプションを追加します: -apptype General

  • ラッピング時にラッピングされた.apkファイルをGoogle PlayストアまたはWebサーバーにアップロードする必要があり、URLが既知の場合は、-storeURLオプションを追加します。apptypeパラメーターも必ず設定してください。

  • -storeURL "https://play.google.com/store/apps/details?id=com.zenprise"

  • ラッピング時にURLが不明な場合は、後で次のコマンドを使用して.mdxファイルを変更できます。
-  java -jar /Applications/Citrix/MDXToolkit/ManagedAppUtility.jar \
-  setinfo \
-  -in ~/Desktop/SampleApps/Sample.mdx \
-  -out ~/Desktop/SampleApps/wrapped/Sample.mdx \
-  -storeURL \
-  “https://play.google.com/store/apps/details?id=com.zenprise”
<!--NeedCopy-->
  • ポリシーファイルをカスタマイズした場合は、変更したファイルを指定してください。

  • -policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml オプションの詳細については、「コマンドオプション」を参照してください。インラインドキュメントについては、-helpオプションを使用してください。

コマンドオプション

wrapコマンド

  • Help: このコマンドのヘルプを表示します。
  • In: 必須。ラッピングするアプリのパスとファイル名。
  • Out: オプション。結果の.mdxファイルのパスとファイル名。このオプションを省略した場合、ファイルは入力ファイルと同じパスとファイル名になり、.mdx拡張子を持ちます。
  • AppType: オプション。デフォルトはMDXOnlyです。ISVアプリを生成するには、GeneralまたはPremiumのいずれかを使用します。
  • KeyStore: キーストアファイルへのパス。 .apkファイルに署名する場合に必須です。
  • StorePass: キーストアのパスワード。 .apkファイルに署名する場合に必須です。
  • KeyAlias: キーストア内の特定のキーの名前。 .apkファイルに署名する場合に必須です。
  • KeyPass: 特定のキーのパスワード。 .apkファイルに署名する場合に必須です。
  • SigAlg: オプション。署名時に使用するアルゴリズム。
  • AppName: オプション。可能な場合はアプリから取得されるアプリケーション名。
  • AppDesc: オプション。可能な場合はアプリから取得されるアプリケーションの説明。
  • MinPlatform: オプション。サポートされる最小SDKレベル。デフォルトは空白です。
  • MaxPlatform: オプション。サポートされる最大SDKレベル。デフォルトは空白です。
  • ExcludedDevices: オプション。アプリの実行が許可されていないデバイスタイプのリスト。デフォルトは空白です。
  • PolicyXML: オプション。置換XMLポリシー定義ファイルとパス。デフォルトは組み込みのポリシー定義です。例:

    -policyxml/Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    詳細については、次の「AndroidアプリのMDXポリシーの事前設定」を参照してください。

  • StoreURL: ISVアプリの場合、Google App Store内のアプリのURL。デフォルトは空白です。

signコマンド

  • Help: このコマンドのヘルプを表示します。
  • In: 必須。ラッピングするアプリのパスとファイル名。
  • Out: オプション。結果の.mdxファイルのパスとファイル名。このオプションを省略した場合、ファイルは入力ファイルと同じパスとファイル名になり、.mdx拡張子を持ちます。
  • KeyStore: 必須。キーストアファイルへのパス。
  • StorePass: 必須。キーストアのパスワード。
  • KeyAlias: 必須。キーストア内の特定のキーの名前。
  • KeyPass: 必須。特定のキーのパスワード。
  • SigAlg: オプション。署名時に使用するアルゴリズム。

setinfoコマンド

  • Help: このコマンドのヘルプを表示します。
  • In: 必須。変更するアプリのパスとファイル名。
  • Out: setinfoの場合、出力パスまたはファイル名はオリジナルと異なる必要があります。
  • AppType: オプション。デフォルトはMDXOnlyです。ISVアプリを生成するには、GeneralまたはPremiumのいずれかを使用します。
  • KeyStore: キーストアファイルへのパス。 .apkファイルに署名する場合に必須です。
  • StorePass: キーストアのパスワード。 .apkファイルに署名する場合に必須です。
  • KeyAlias: キーストア内の特定のキーの名前。 .apkファイルに署名する場合に必須です。
  • KeyPass: 特定のキーのパスワード。 .apkファイルに署名する場合に必須です。
  • SigAlg: オプション。署名時に使用するアルゴリズム。
  • AppName: オプション。可能な場合はアプリから取得されるアプリケーション名。
  • AppDes: オプション。可能な場合はアプリから取得されるアプリケーションの説明。
  • MinPlatform: オプション。サポートされる最小SDKレベル。デフォルトは空白です。
  • MaxPlatform: オプション。サポートされる最大SDKレベル。デフォルトは空白です。
  • ExcludedDevices: オプション。アプリの実行が許可されていないデバイスタイプのリスト。デフォルトは空白です。
  • StoreURL: ISVアプリの場合、Google App Store内のアプリのURL。デフォルトは空白です。
  • PolicyXML: オプション。置換XMLポリシー定義ファイルとパス。デフォルトは組み込みのポリシー定義です。例:

    -policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    詳細については、次の「AndroidアプリのMDXポリシーの事前設定」を参照してください。

AndroidアプリのMDXポリシーの事前設定

MDX Toolkitコマンドラインツールでラッピングするアプリの場合、一部のMDXポリシーを事前設定できます。アプリを追加する際に、Citrix Endpoint Managementコンソールでポリシーを設定することもできます。

  1. ポリシーXMLファイル内のポリシー値を更新します。

    MDX Toolkitインストーラーは、このポリシーファイルを作成します: Applications/Citrix/MDXToolkit/data/policy_metadata.xml

    AndroidとiOSのポリシーファイルは異なることに注意してください。これら両方のプラットフォームのポリシーを事前設定するには、それぞれのポリシーXMLファイルを更新する必要があります。

  2. コマンドラインでアプリをラッピングする際に、以下を含めます。

    -policyxml /Applications/Citrix/MDXToolkit/data/policy_metadata.xml

Androidアプリのラッピングエラーの特定

Androidアプリのラッピング中にエラーが発生した場合、MDX Toolkitログを使用してエラーを特定できます。MDX Toolkitログを表示するには、管理者権限が必要です。

MDX Toolkitを実行すると、ツールはログファイルを次の場所に保存します: Applications/CitrixMDXToolkit/Logs/Citrix.log。デフォルトでは、ツールは警告とエラーをログに保存します。

コマンドラインからのアプリログの収集

  1. Android Developer WebサイトからAndroid Debug Bridgeをインストールします。詳細については、「Android Debug Bridge」を参照してください。
  2. 既存のログをクリアするには、次のコマンドを入力します: “adb logcat -c”
  3. 問題を再現します。
  4. ログをファイルにキャプチャするには、次のコマンドを入力します: adb logcat -d > Name_of_Log_File.txt