カウンセリングエンジニア

産業カウンセラーの有資格者が発信します。カウンセリング、マネジメント、Unityあたりの内容多めで構成する予定です

iOS実機でLight Probe Groupを含むSceneのUnload時にクラッシュする

概要

iOS実機でLight Probe Groupを含むSceneのUnload時にクラッシュする現象が起きたため調査しました。
その結果わかった原因と解決策について記載します。

環境

Unity 2018.2.16f1

原因

Strip Engine Codeが有効になっていてLight Probe GroupがiOSビルド時に削除されていた

AssetBundle化したSceneをロードして使用するフローで開発していたため、
Light Probe Groupがアプリ内で使用されていない扱いとなり削除されていたようです。

特定方法

SRDebuggerを使って実機でログを確認したところ

Could not produce class with ID 220

というエラーログが出ていて、

YAML クラス ID リファレンス - Unity マニュアル

で調べたところ|220 |LightProbeGroup | と書いてあったので原因特定にいたりました。

解決策

tsubakit1.hateblo.jp

テラシュールブログを参考に link.xmlを記述してLight Probe Groupをストリップしないコンポーネントとして指定することで回避しました。

まとめ

テスト用に最小構成のプロジェクトを作って試したりしたのですが、
その際SceneのAssetBundle化までは行わずにテストしていたためかなり苦戦しました

実機でログ確認出来る環境は必須ですね。