【 HoloLens 2 新機能  】アプリインストーラー経由で HL2 アプリをインストールする方法

# Overview
HoloLens 2 リリースノート - [Windows Holographic, version 20H2 – December 2020 Update](https://docs.microsoft.com/en-us/hololens/hololens-release-notes#windows-holographic-version-20h2--december-2020-update) で追加された **【 新機能 】App Installer (アプリインストーラー)** について調査したので、内容と実際のアプリケーションインストール手順についてまとめておきたいと思います。

# What's App Installer !?

<img width="800" alt="App Installer" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/19/10862/7197daa2-9075-46a8-b369-7c5d1cc9c463.png">


HoloLens 2 新機能 : App Installer ( 以下、アプリインストーラー ) は、よりシームレスにアプリケーションをインストールするための機能です。従来ローカルアプリ配布時に必要だった (1)開発者モードの有効化、(2)デバイスポータル を使用するといった手順が不要となり、気軽にアプリをインストールすることが可能になりました。

<u>アプリインストーラーは <font color="red">**管理対象外**</font> のデバイスでは標準で動作する</u>ようになっています。現時点では、企業の混乱を防ぐため、管理対象デバイスではアプリインストーラーを利用することはできません。

以下内容に一つでも当てはまれば、 **管理対象デバイス** であると考えられます。

- MDM ( Mobile Device Managment ) 登録済みである
- プロビジョニングパッケージで構成されている
- Azure AD の ユーザーID (識別子) を使用している

# Requirements
この章では、アプリインストーラーを使用するための要件をご紹介したいと思います。

## For your HoloLens 2
- **Windows OS アップデート :  <font color="red">Build 19041.1.1131 以降</font>**

この機能は Windows Holographic Version 20H2 - December 2020 Update から利用可能となりました。新しい機能を使用する前に一度  HoloLens 2 OS ビルド番号 ( Build 19041.1131 以降 ) をご確認いただければと思います。

## For your Apps
**<u>アプリインストーラーは Microsoft Store からの依存関係を使用するため、</u>アプリのソリューション構成は <font color="red">Master / Release</font> のいずれかである** 必要があります。

**アプリインストーラー経由でインストールされるアプリはデジタル署名が必須** となります。

# Install method
この章では、実際にアプリインストーラーを使って HoloLens 2 へアプリケーションをインストールしてみたいと思います。

**1. インストールするアプリパッケージを作成する**

Unity からエクスポートしたソリューションファイル (.sln) を Visual Studio 2019 で開き、
Project > Publish > Create App Packages ... を選択します。

<img width="500" alt="Create App Packages..." src="https://img.esa.io/uploads/production/attachments/3505/2021/01/18/10862/faf72268-f48e-4d17-bc00-233f603af1b9.png">

配布用の App Packages 作成ウィザードが表示されます。

## 1-1. Select distribution method
アプリケーションの配布方法の選択 

<img width="400" alt="Select distribution method" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/18/10862/dce2cc33-6f89-45f3-a4f1-5e03c11e17e1.png">

| 配布方法 | 概要 |
| --- | --- |
| Microsoft Store under a new app name | Microsoft Store にて公開 ( アプリ名は一意 )  |
| Sideloading | Microsoft Store を経由せずにアプリを公開、<br/>インストールする方法 |

**ラジオボタン : Sideloading にチェックを入れ、Nextボタンを押します。**

## 1-2. Select signing method
アプリケーションの署名有無の選択

<img width="400" alt="Select signing method" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/18/10862/80504145-abab-44ac-a4b3-adff68f90c8c.png">

| デジタル署名の有無 | 概要 |
| --- | --- |
| No, skip package signing | デジタル署名を行いません  |
| Yes, select a certificate | 証明書を指定して、デジタル署名を行います |

**ラジオボタン : Yes, select a cerificate にチェックを入れ、Createボタンより証明書を作成します。**
※ 既存の証明書を使用される場合は、ファイルをアップロードしてください。

## 1-3. Select and configure packages
出力先、アプリバージョン、ソリューション構成についての選択

<img width="400" alt="Select and configure packages" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/19/10862/9af92501-c574-4590-8c75-2814afc6234c.png">

**出力先の確認、バージョンの確認、ソリューション構成の設定が終わったらCreateボタンを押します。<font color="red">出力先のパッケージアーキテクチャにARM、ソリューション構成が Release / Master 設定されていることを再度確認してください。 </font>**

## 1-4. Appx Bundle (.appx) uploads to Cloud Storage
アウトプットされた Appx Bundle (.appx) をクラウドストレージにアップロードします。HoloLens 2 へUSB経由でファイル配置、インストールを実行することも可能ですが、この記事ではクラウドストレージ経由 (OneDrive / Azure Blob Storage / Google Drive ) での手順をご紹介します。 

<img width="400" alt="Output File" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/19/10862/8e52d40f-5668-4fd1-ba17-2dc6a8ebafce.png">


お好きなストレージに Appx Bundle (.appx) をアップロードしたら、URL共有を行います。**Visual Studio の出力先には、依存関係 ( Dependencies ) も出力されますが、アップロードは不要です。**

<img width="500" link="https://qr.quel.jp/" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/19/10862/58ee4f89-4174-4ac6-898a-9fc267210eaa.png">

取得したURLを元に QRコードの生成を行います。
[QRのススメ](https://qr.quel.jp/) など、Webアプリで簡単にQRコードを作成することができます。

**2. HoloLens 2 デバイス上での作業手順** 

2-1. デバイスが管理対象外であることを確認する
2-2 . HoloLens 2 を起動し、サインインを実行する
2-3. HoloLens 2 で QR コードを読み込む

<img width="500" alt="Detect QR Code" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/19/10862/08a6256f-c65c-4eaf-8614-a89bd365d66a.png">

HoloLens 2 では OS 標準機能で QRコードを認識することができるので、
**端末を起動した状態で QRコードに近づき、再生ボタンを押します。**

2-4. Edge ( ブラウザ ) から appxbundle をダウンロード、ファイルを開く

<img width="500" alt="Download View" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/19/10862/b4d8b401-6e2f-450b-be8b-956fbe7cad44.png">

2-5.  アプリインストール画面にてインストールを行う

<img width="500" alt="Install View" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/19/10862/c6248196-3c7a-407f-9169-44b7ef4034b0.png">

2-6.  インストール完了後、アプリが立ち上がる 

<img width="500" alt="App Start" src="https://img.esa.io/uploads/production/attachments/3505/2021/01/19/10862/a0ee16c8-15d3-4cf0-bf94-041a555eef3f.png">


以上で、インストール作業が完了となります。お疲れさまでした。

開発中のアプリをレビューして欲しい際にQRコードを共有するだけで、
気軽にアプリケーションをインストールできるのは非常に便利ですね。
最後までお読みいただき、ありがとうございました。

# Refs
- [HoloLens 2 Release Notes](https://docs.microsoft.com/en-us/hololens/hololens-release-notes)
- [Install Apps on HoloLens 2 via App Installer](https://docs.microsoft.com/en-us/hololens/app-deploy-app-installer)
- [アプリインストーラーを使用して HoloLens 2 にアプリをインストールする ](https://blog.hololab.co.jp/entry/2021/01/05/022713)