第3章 Windows

3.1. Windows Phone 8 へのアプリのデプロイ

Windows Phone 8 アプリの種類に応じて利用可能なデプロイメントのオプションは異なります。

3.1.1. 非企業向け Windows Phone 8 アプリ

アプリバイナリーが Windows Phone の企業証明書で署名されていない場合、アプリは非企業向けのアプリになります。非企業向けの Windows Phone 8 アプリをデバイスに直接ワイヤレス (OTA) でインストールすることはできません。

3.1.1.1. ビルド

  • Visual Studio の使用

    Visual Studio では、署名オプションが指定されない場合、最終バイナリーは非企業向けアプリのバイナリーになります。

  • App Studio の使用

    App Studio を使用して Windows Phone 用のビルドを行う場合に「Don’t sign the binary (バイナリーに署名しない)」オプションが選択されていると、最終アプリバイナリーには署名されず、アプリは非企業向けになります。

    イメージ

3.1.1.2. 配布およびデプロイメント

通常、このタイプのアプリの配布とデプロイの方法として以下のような 2 つのオプションがあります。

3.1.2. 企業向け Windows Phone 8 アプリ

非企業向けアプリは、Windows Phone のエンタープライズ証明書で署名されると企業向けアプリになります。企業向けアプリはデバイスに直接ワイヤレス (OTA) でインストールでき、アプリストアは完全にバイパスされます。

App Studio を使用して企業アプリをビルドするには、以下のステップを実行する必要があります。

3.1.2.1. エンタープライズ証明書の取得

以下のステップに従ってエンタープライズ証明書を取得してください。

  • Publish Windows apps のステップに従い、企業向け Windows Phone 開発者アカウントを作成し、アカウントタイプが「Company」であることを確認します。これには年間 $99 の費用がかかります。企業情報の検証のために処理に数日かかることがあります。
  • 開発者アカウントがセットアップされたら、Enterprise Mobile Code Signing Certificate にアクセスして証明書ファイルを申請し、「Publisher ID」フィールドに Windows Phone 開発者アカウントの情報を指定します。これには年間 $299 の費用がかかります。
  • このプロセスが完了すると、Symantec はコンピューターの証明書ストアにインポートできる証明書を配信します。証明書のインストール方法を参照してください。

    ヒント

    Symantec への証明書のリクエストや証明書の取得には同じコンピューターを使用してください。

  • 最後に、証明書をそのプライベートキーと共に PFX ファイルでエクスポートし、これをパスワードで保護する必要があります。その手順については、Export a Certificate with the Private Key を参照してください。

さらに詳しくは、Company app distribution for Windows Phone を参照してください。

3.1.2.2. アプリケーション登録トークン (AET: Application Enrollment Token) の生成

企業アカウントで登録された電話のみがエンタープライズ証明書で署名されるアプリをワイヤレス (OTA) でインストールできます。デバイスを登録するには、アプリケーション登録トークン (AET) を生成し、これをデバイスにインストールする必要があります。

Windows Phone 用のアプリケーション登録トークンを生成する方法にあるステップを実行して、AET ファイルを手動で生成することができます。

または、App Studio では次のステップを実行して AET ファイルを生成することができます。

AET ファイルをデバイスにインストールする最も簡単な方法として、Web サーバーに AET を保存し、ユーザーにデバイスの Web ブラウザーを使用してこれをダウンロードするように求めることができます。次のいくつかのステップからも分かるように、App Studio でこれを実行できます。

3.1.2.3. Windows Phone の認証情報バンドルの作成

認証情報が利用可能になると、App Studio で新規の認証情報バンドルを作成することができます。

wp create credential bundle

スクリーンショットからも分かるように、App Studio は AET ファイルを生成できます。ただし、AET ファイルがすでに存在する場合、これを代わりにアップロードすることを選択できます。AET ファイルを自分で管理することを選択する場合は、AET ファイルがユーザーのデバイスにインストールされていることを確認してください。

3.1.2.4. アプリのビルドおよび認証情報バンドルを使った署名

Windows Phone のアプリを App Studio でビルドする場合、アップロードしたばかりの認証情報バンドルを使ってアプリバイナリーに署名するオプションを選択できます。

image

3.1.2.5. 配布およびデプロイメント

アプリのビルドが終了すると、ダウンロードページには OTA リンクと QR コードが表示され、アプリをユーザーのデバイスに簡単にインストールできるようになります。AET ファイルが認証情報バンドルの一部として利用できる場合、そのダウンロードリンクと QR コードも表示されます。

image

3.2. Windows プラットフォームのサポート

Red Hat Mobile Application Platfrom (RHMAP) は、Windows ベースのデバイスのクライアントアプリの開発をサポートします。詳細のチュートリアルについては、Windows のフォームアプリと Cordova アプリの開発を参照してください。

3.2.1. サポートされるプラットフォーム

現行バージョンの RHMAP は Windows Phone バージョン 8 以降をターゲットにしています。本ガイドでは、プラットフォーム固有の問題の回避策の情報を詳しく記載しています。

  • Windows 10 ユニバーサルアプリ (電話、タブレットおよびデスクトップ):

    • 完全サポート (以下を除く)

      • アプリは RHMAP でビルドできず、ローカルでビルドする必要があります。
  • Windows 8.1 ユニバーサルアプリ (電話、タブレットおよびデスクトップ):

    • 完全サポート (以下を除く)

      • アプリは RHMAP でビルドできず、ローカルでビルドする必要があります。
      • Cordova アプリには動的コンテンツのサポートを有効にするための回避策がいくらか必要になります。
  • Windows Phone 8.1:

    • 完全サポート
  • Windows Phone 7、7.5 以降
  • Windows 8 Pro (タブレット)
  • Windows 8 RT (タブレット)

3.2.2. Windows アプリのローカルビルド

Microsoft の開発ツールのライセンス方法の変更により、現時点で Windows 8.1 および Windows 10 のアプリを RHMAP で直接ビルドすることはできません。影響を受けるプラットフォームの RHMAP アプリはローカルの開発環境で手動でビルドする必要があります。

  1. まず、クライアントアプリのリポジトリーをクローンします。

    git clone <Git_URL>
  2. プロジェクトフォルダーでソリューションファイル (.sln) を見つけ、これを Visual Studio で開きます。
  3. Visual Studio で F7 キーを押し、ソリューション設定およびプラットフォームを選択してからプロジェクトをビルドします。詳細は、公式のドキュメント Building a Windows Phone app in Visual Studio を参照してください。
  4. ビルドが終了すると、拡張子が .xap または .appx のバイナリーが <project_name>/<solution_name>/Bin/<solution_configuration> に置かれます。バイナリーファイルは Windows デバイスにデプロイしたり、RHMAP App Store にアップロードしたりできます。

3.2.3. Windows 8.1 の Cordova での動的コンテンツの有効化

Windows 8.1 については、アプリが innerHTMLouterHTML などのプロパティーを使用することを防ぐセキュリティー上の制限があります。この制限により、動的コンテンツが挿入されることが妨げられ、ほとんどの JavaScript フレームワークが適切に機能しなくなります。さらに Cordova アプリと RHMAP のドラッグアンドドロップアプリも機能しなくなります。

この問題の回避策として Microsoft が提供する単一の JavaScript ファイルを参照することができます。これによりセキュリティー上の制限が緩和されます。

  1. winstore-jscompat.js ファイルをダウンロードします: https://raw.githubusercontent.com/MSOpenTech/winstore-jscompat/master/winstore-jscompat.js
  2. winstore-jscompat.js ファイルをプロジェクトの www フォルダーにコピーします。
  3. 動的コンテンツの操作を必要とする HTML のファイルを参照します。winstore-jscompat.js は、cordova.js または feedhenry.js を含む他の JavaScript フレームワークの前に参照される必要があります。

    <!-- above feedhenry.js or cordova.js-->
    <script src="winstore-jscompat.js" type="text/javascript"></script>

この回避策についての詳細は、MSOpenTech/winstore-jscompat リポジトリーの説明を参照してください。

3.3. Windows のフォームアプリおよび Cordova アプリの開発

概要

このチュートリアルでは、Red Hat Mobile Application Platform ホスト型 (RHMAP) を使って Windows プラットフォームをターゲットにするフォームアプリを作成する方法について説明します。このチュートリアルで説明されるステップは、フォームアプリだけではなくすべての Cordova アプリにも適用されます。

Windows プラットフォームのサポートで説明されているように、現時点ではいくつかの問題により、他のプラットフォームのサポートと同等のサポートが Windows プラットフォームでは利用できません。具体的には、Windows 8.1 および Windows 10 のネイティブアプリは Platform でビルドできず、手動でビルドする必要があります。さらに Cordova アプリには Windows 8.1 で適切に機能できるようにするための少しの回避策が必要です。

ヒント

このチュートリアルは、すぐに視聴可能なビデオウォークスルーでもご利用いただけます。

要件

  • Windows 8.1 または Windows 10
  • 最小 4 GB の RAM を搭載した 32 または 64 ビットマシン
  • Visual Studio 2013 Express 以降
  • Platform の既存のフォームアプリまたは Cordova アプリ。フォームアプリの作成方法については、フォームプロジェクトの作成を参照してください。

3.3.1. ステップ

3.3.1.1. 初期設定

  1. Node.js をダウンロードし、インストールします: https://nodejs.org/en/download/

    この設定を指示するインストーラーを使用できます。npm パッケージマネージャーがインストールに組み込まれていることを確認します。これは本ガイドの後にも必要となるコアコンポーネントです。

  2. git クライアントをダウンロードし、インストールします: https://git-scm.com/download/win/
    git の実行ファイル以外にも、Windows の Git インストーラーは、(Git Bash という) エミュレートされた Bash シェルおよびコマンドラインツールのセットを提供し、使い慣れた開発環境を提供します。Windows プロジェクトの Git についての詳細は、Git for Windows という公式 Web サイトを参照してください。

    注記

    本ガイドに記載のコマンドラインの使用が関係するステップのほとんどでは、とくに記述がない限り cmd または PowerShell を使用できます。ただし、このステップでインストールされる Git Bash コマンドをすべてのステップで使用することをお勧めします。

  3. Cordova パッケージをインストールします。

    npm install -g cordova

    これにより、cordova 実行可能ファイルを含む Cordova パッケージがグローバルにインストールされ、これがすべての Node.jsアプリケーションで利用可能になります。

  4. Platform からアプリのリポジトリーをクローンします。

    まず git アクセスが適切に機能するように SSH キーをプラットフォームにアップロードする必要があります。詳細は、SSH キーの設定 を参照してください。

    アプリのリポジトリーをクローンします。

    git clone <git-ssh-clone-url-of-your-app>

    アプリの Git SSH クローン URL は「App Details (アプリの詳細)」で確認できます。

3.3.1.2. Cordova セットアップ

通常 Cordova プロジェクトは Platform でのビルド時に Cordova アプリ用として自動的に作成されるため、Cordova 固有のファイルおよびフォルダーはアプリのリポジトリーでは利用できません。ただし、手動でビルドする場合には Cordova ファイルの作成とコマンド呼び出しを手動で実行する必要があります。

フォームアプリについても Cordova をベースとしているため、Cordova アプリと同じビルド手順が必要になります。

  1. Cordova プロジェクトを作成します。

    この例では winforms という名前を使用しますが、任意の名前を使用できます。

    cordova create winforms --copy-from <location-of-forms-app>\www

    これにより新規の Cordova プロジェクトが作成され、www ディレクトリーから新規に作成されるプロジェクトの www ディレクトリーにアセットがコピーされます。

  2. Windows 8.1 のみ: Cordova アプリでの動的コンテンツ操作の回避策を適用します。

    詳細は、Windows 8.1 での Cordova の動的コンテンツの有効化を参照してください。

    git clone https://github.com/MSOpenTech/winstore-jscompat.git
    copy winstore-jscompat\winstore-jscompat.js forms\www

    winstore-jscompat.js は動的コンテンツ操作を実行する Cordova アプリのすべての HTML ファイルに含める必要があります。

    <meta name="format-detection" content="telephone=no">
    <!-- these three js files should be included exactly in this order -->
    <script src="winstore-jscompat.js" type="text/javascript"></script>
    <script src="cordova.js" type="text/javascript"></script>
    <script src="feedhenry.js" type="text/javascript"></script>
  3. windows プラットフォームを Cordova プロジェクトに追加します。

    cd winforms
    cordova platform add windows

    これにより、ソリューションファイル (.sln) を含むバイナリーをビルドするために必要なすべてのソースファイルが作成されます。このファイルはプロジェクトを Visual Studio にインポートするために使用できます。

  4. デフォルトの Cordova プラグインを追加します。

    cordova plugin add \
        cordova-plugin-file \
        cordova-plugin-camera \
        cordova-plugin-file-transfer \
        cordova-plugin-device \
        cordova-plugin-network-information \
        cordova-plugin-battery-status \
        cordova-plugin-device-motion \
        cordova-plugin-device-orientation \
        cordova-plugin-geolocation \
        cordova-plugin-media \
        cordova-plugin-media-capture \
        cordova-plugin-dialogs \
        cordova-plugin-vibration \
        cordova-plugin-contacts \
        cordova-plugin-globalization \
        cordova-plugin-inappbrowser \
        cordova-plugin-console \
        https://github.com/fheng/fh-cordova-plugins-api.git

3.3.1.3. バイナリーのビルド

アプリのバイナリーは Cordova を使用してコマンドラインからか、または Visual Studio からビルドでき、これは Windows 8.1 および Windows 10 の両方をサポートします。

Cordova を使用してビルドするには、以下を実行します。

cordova build

Visual Studio を使用してビルドするには、直前のステップで作成されたソリューションファイル (.sln) を Visual Studio にインポートし、ソリューションをビルドします。詳細は、Windows アプリのローカルビルドを参照してください。

Cordova は、アプリの実行をすぐに確認できるようにエミュレーターを開始する機能も提供します。

cordova emulate