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 |
と書いてあったので原因特定にいたりました。
解決策
テラシュールブログを参考に link.xmlを記述してLight Probe Groupをストリップしないコンポーネントとして指定することで回避しました。
まとめ
テスト用に最小構成のプロジェクトを作って試したりしたのですが、
その際SceneのAssetBundle化までは行わずにテストしていたためかなり苦戦しました
実機でログ確認出来る環境は必須ですね。