Kilimanjaro Warehouse

WEBとかゲーム開発のことについて書きます。

Unity: UnitySetup-iOS-Support-for-Editorのインストールに失敗するときの解決法

UnityでiOSのアプリをビルドするためには、
ビルドサポート用のパッケージをインストールする必要があります。

先日このパッケージのインストールに失敗したので、
解決法と原因の解説を記しておきます。

f:id:kilimanjaro-a2:20181216164740p:plain

環境

この記事は2018/12/16時点での情報です。

環境 バージョン
macOS Mojave 10.14.2
Unity Hub 1.3.2
Unity 2018 3.0f2
iOSSupport UnitySetup-iOS-Support-for-Editor-2018.3.0f2

TL;DR 解決法

~/Applications/Unity

以下にUnity.appを置く。

インストール失敗の原因

ビルドサポート用のパッケージをインストールするためには、
Unity.app内部にあるInfo.plistというファイルの情報が必要なのですが、
Unity.appを別の場所へ移動していたり、名前を変えていた場合、
インストーラーがInfo.plistを見つけることができなくなり、
インストールに失敗するということでした。

Turns out the Unity app has to be located in /Applications/Unity and has to be called Unity.app

To find the version number the pre install script looks specifically at
$DSTVOLUME/Applications/Unity/Unity.app/Contents/Info.plist if that files doesn't exist the installer fails without any indication as to why

from:
https://forum.unity.com/threads/cant-install-ios-build-support.395608/#post-3140717


(以下、使用するUnityのバージョンを2018 3.0f2とします。違うバージョンの場合適宜読み替えてください)
私の場合、Unity Hubを経由してUnityをインストールしていたのですが、
Unity Hubを経由した場合、Unity.appは、

~/Applications/Unity/Hub/Editor/2018 3.0f2

以下に配置されます。
ところが、先述の通りインストーラーは

~/Applications/Unity

を参照しようとします。
その結果、インストーラーはUnity.appを見つけることができず、
インストールが失敗してしまうことになったようです。

なので、ここからUnity.appを~/Applications/Unity以下に移動することで、
インストールを正常に行うことができるようになります。

注意点

Unity Hubを使用している場合で上記のような対応を行った場合、
Unity HubからそのバージョンのUnityエディタを起動することができなくなります。
今度はUnity HubがUnity.appを見つけることができなくなるからです。

これを修正するためには、
iOSサポート用のパッケージをインストール後、

1. Unity.appを元の場所に戻す
2. Unity HubのInstallタブのLocate a Versionから元に戻したエディタを選択する
3. ~/Applications/Unity以下にあるPlaybackEngines/iOSSupportディレクトリを~/Appications/Unity/Hub/Editor/2018 3.0f2以下へ移動する

以上の手続きを行う必要があります。
3番の操作は、PlaybackEngines/iOSSupportをUnity.appと同じ階層下に置かないと、
Unityがインストールしたパッケージを認識できないためです。

思ったこと

Unity Hubは便利だけど、これは罠すぎる...