本日は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>