本日はOculus Quest枠です。
〇AppLabとは?
Oculus Questへのオリジナルアプリケーションのインストール方法には以下のようなものがあります。
・Storeからインストール
これはOculus Questでのアプリケーションのインストール方法としては最も一般的なもので、Storeで公開、販売されているアプリケーションとしてインストールする方法です。
公式のアプリとしてインストールするため安全なものの、ストアにリリースするためには審査などが必要なうえ、世界中誰でもインストールできるようになっています。
・Side Questからインストール
Side QuestはQuestやGo、ViveのスタンドアローンデバイスなどアンドロイドのxRデバイスに非公式のアプリを含めインストールすることができるソフトウェアです。
Storeに申請することなくAPKファイル(アプリケーションファイル)があればインストールすることができる点が魅力です。
・AppLabからインストール
Side Questが非公式アプリであることに対してAppLabはOculus公式が提供している正式なツールです。
ストアに提出する前の承認を得ていないアプリであっても少人数でのテストなど公開範囲を制限して公開することができます。
AppLabではAPKファイルをアップロードすることによって登録しているアカウントグループ内のQuestにアプリが表示されるようになります。
今回はこのAppLabでAPKファイルをアップロードして登録する際にエラーが発生したため問題の解消法を記載します。
〇AppLabでAPKファイルをアップロードする際にエラーが発生する
AppLabの使い方やファイルのアップロードに関してはこの記事の本質とずれるためここではあまり紹介しません。
①AppLabでα版のアプリをリリースするためにはOculus Developer Hubを使用します。
②APKファイルをアップロードすると次のようなエラーが発生しました。
Logs are written to: C:\Users\sator\AppData\Local\Temp\oc_cli_5302088483153651_2022-01-25T04-34-04-042Z.log ******************************************************************************* * Your copy of Oculus Platform Command Line Utility is old. * * Version 1.67.0.000001 has been released on Fri Oct 08 2021. * * Please use the following command to update it: * * > ..\..\Users\sator\AppData\Roaming\odh\ovr-platform-util.exe self-update * ******************************************************************************* [1m Validating build...[0m ERROR: Validation identified the following errors: This app includes the following 32-bit only (armeabi-v7a) libraries: libMonoPosixHelper.so, libOVRLipSync.so, libOVRPlugin.so, libOculusXRPlugin.so, libmain.so, libmonobdwgc-2.0.so, libovravatarloader.so, libovrplatformloader.so, libunity.so, libvrapi.so NOTE: Your manifest includes the following permissions restricted by Oculus: - android.permission.RECORD_AUDIO Please remove these permissions if they are not needed by your application. If they are needed, you must include justification in the "Notes for the Reviewer" field when submitting your application for review. Failure to provide justification will result in the rejection of your application. Build Upload Error - an error has occurred
ここでは 32ビット専用のファイルが含まれていることが原因とあります。
この時点でアーキテクチャが原因である可能性を考えました。
〇原因と解消
今回上記のエラーが発生していたのはUnityプロジェクト側でScriptingBackendがMonoであることが原因でした。
このScriptingBackendは[Mono]、[Il2cpp]などがあります。
[Il2cpp]はIL(intermediate language=中間言語)をC++に変換してアプリケーションのパフォーマンス向上を行うものです。
今回のエラーはScriptingBackendがIL2CPPにして再ビルドし、アップロードすることで解消しました。
IL2CPPはビルドに時間がかかりますが反面前述のようにアプリケーションのパフォーマンスは向上するのでリリースの際はIL2CPPにするほうが良いようです。
なおHoloLensの場合はIL2CPP一択でほかのものが使用できません。