MRが楽しい

MRやVRについて学習したことを書き残す

Microsoft Authentication Library(MSAL)をUnityで利用するとインスタンスエラーが発生する問題の対処

本日はMSALの小ネタ枠です。
MSALをUnityで利用するとインスタンスエラーが発生する問題の対処方法です。

MSALの利用手順

MSALの利用手順については以下の記事を参照ください。
bluebirdofoz.hatenablog.com

発生エラー

AcquireTokenSilent関数を使ってキャッシュを利用してアクセストークンを取得しようとしたところ、以下のエラーが発生しました。

object reference not set to an instance

原因

MSALを利用するアプリをUnityでビルドしたとき、コードストリッピング(最適化)により一部のソースコードが含まれないことが原因です。
learn.microsoft.com

対策

Assetsフォルダ配下に以下のlink.xmlを作成することで、問題を回避できます。

<linker>
 <assembly fullname="Microsoft.Identity.Client" preserve="all" />
 <assembly fullname="System" preserve="all" />
 <assembly fullname="System.Core" preserve="all" />
</linker>