エラー概要
Ran out of trampolines of type 2
Unity で iOS アプリをビルドして動作確認していた時に上記のエラーが出て
アプリが強制終了する現象に遭遇しました
https://github.com/unity3d-jp/unity-doc/blob/master/ja/TroubleShooting.txt
"Ran out of trampolines of type 0/1/2" ランタイムエラー
このエラーは通常、再帰的なジェネリックをたくさん使用するときに発生します。
AOTコンパイラに指示をして、より多くのtype0, type 1 または type 2 の
トランポリンを割り当てることが出来ます。
追加の AOT コンパイラ コマンドライン オプションは
Player Settings の "Other Settings" セクションで指定できます。
type 1 のトランポリンについては、nrgctx-trampolines=ABCD
、
ここではABCDは新しく必要なトランポリンの数(すなわち 4096)、を指定してください。
type 2 のトランポリンについてはnimt-trampolines=ABCD
を指定してください。
type 0 のトランポリンについては、ntrampolines=ABCD
を指定してください。
調べてみたところ、再帰的なジェネリック関数をたくさん使用すると発生するとのことでした
解決方法
- Unityのメニューから「File>Build Settings...」を選択する
- 「Platform」で「iOS」を選択した状態で「Player Settings...」を選択する
- 「AOT Compilation Options」に下記の一行を入力する
ntrampolines=2048,nrgctx-trampolines=2048,nimt-trampolines=1024