Grani Engineering Blog

株式会社グラニはC#を中心として、ASP.NET、Unity、VR開発を行っています。

HoloLens の実機デプロイに失敗する衝撃の理由とその回避方法

こんにちは!VR 部の鈴木 (@xin9le) です。最近 VR 部では Microsoft HoloLens を使った Unity アプリケーションの調査/研究も積極的に行っているのですが、その中でデプロイ周りでハマッたことがあったので、それについてご紹介しようと思います。

とある条件で実機デプロイに失敗する

何ということはなく、Windows Store App をターゲットプラットフォームとしてビルドします。以下のような感じで、HoloLens 開発者としては至って普通の手順のひとつです。これで問題なく Unity から UWP 向けのプロジェクト出力ができます。

f:id:xin9le:20170306011938p:plain

Unity から出力された UWP プロジェクトを開き、x86 向け Release ビルドをします。これも問題なく成功します。非常に順調です。

f:id:xin9le:20170306012339p:plain

f:id:xin9le:20170306012345p:plain

それでは実機デプロイを行います。ところが、とある条件を満たすと以下のように無慈悲な配置エラーが発生してしまいます。

f:id:xin9le:20170306012610p:plain

エラー番号で調べても思い当たるものは特段出てきません。これは大変困った…!

原因は証明書

いろいろと試行錯誤した結果、Unity から UWP プロジェクトの出力を行う際に利用する証明書に問題があることが分かりました。UWP プロジェクト出力時、明示的な設定がない場合に Unity は自動的にテスト用の証明書を作成します。これには会社名 (Company Name) が利用されます。配置エラーが発生したとき、私は以下のように設定していました。

f:id:xin9le:20170306013227p:plain

至って普通で全く問題ないように見受けられますが、Company Name に「, Inc.」が入っていると配置エラーが発生します。より具体的に原因を絞り込むため、以下に挙げるような条件でも試してみました。

会社名 条件 結果
Grani. 末尾に「.」を入れてみる
Grani, 末尾に「.」を入れてみる
Grani  末尾に半角スペースを入れてみる
Grani Inc 途中に半角スペースを入れてみる
Grani.Inc 途中に「.」を入れてみる
Grani,Inc 途中に「,」を入れてみる ×
UWP プロジェクト自体出力できない
Grani, Inc 途中に「,」と半角スペースを入れてみる ×
配置エラー

もはや罠としか言いようがないですが、「, Inc.」を英語名に持つ会社にお勤めの方はもしかしたら引っ掛かるかもしれないので、同様の問題が出た際には「, Inc.」を入れずに試してみてください