unity2019.3.10f1 standalone il2cpp
セーブデータに保存時のDateTimeを持たせ、それを表示する箇所でエラーになっていました。
原因
Unity IssueTracker - [IL2CPP] ArgumentOutOfRangeException is thrown when using the .NET methods for formatting dates and attempting to format dates
To reproduce: 1. Download attached project "ArabicCalendarMissing.zip" and open in Unity 2. Open "SampleScene" scene 3. Build for iO...
どうやら特定地域のカレンダーはIL2CppのManaged Code strippingで除かれているようです。僕はManaged Stripping Level Lowでした。
link.xmlでホワイトリストにいれないとダメみたいです。
対策
<linker>
<assembly fullname="System.Globalization.*Calendar" preserve="all"/>
</linker>
ひとまず、全カレンダーをアセンブリに含めるようにしました。windowsなんでアプリサイズとか気にするほどでもないでしょう。ワイルドカードを使ってみましたが、記法が正しいかは分かりません…
これでビルドして様子を見ようと思います。
追記
<linker>
<assembly fullname="mscorlib">
<namespace fullname="System.Globalization" preserve="all"/>
</assembly>
</linker>
こっちのがよいらしいです。
IL2CPP を使ったマネージバイトコードストリッピング - Unity マニュアル
マネージバイトコードストリッピングは、マネージアセンブリ (DLL) から使用しないコードを削除します。その処理は、まずルートアセンブリを定義し、それから、静的コード解析を使用してそれらのルートアセンブリが使用するマネージコードを定義します。アクセスできないコードはすべて削除されます。バイトコードストリッピングがコード...