技術と趣味の亜空間

主にゲームプログラミングとその周辺に関する記事を不定期で上げていきます

【Unity】Firebase + Xcode13 で起動時にクラッシュする問題の対処法

Firebase logo

2022/2/11 追記

2022年1月31日のVersion 8.8.0にて修正されました。 firebase.google.com

概要

UnityでFirebaseを入れている自分のプロジェクトをXcode13にアップグレード後、アプリをビルドすると起動時にクラッシュするようになってしまいました。
正確には該当アプリの初回起動後にプッシュ通知を許可、その後タスクキルして再度アプリを立ち上げると画面がブラックのままで進行不能になります。
どうやらFirebaseライブラリの問題であるらしいのですが、2022年1月11日現在まだ公式で修正されてはいない模様。
クラッシュの原因として、UnityFrameworkが読み込まれるよりも先にFirebase側のフレームワークが読み込まれてクラッシュしているみたいです。

暫定的な回避方法

現在2通りあります:

  1. Build Phases -> Link Binary with Librariesセクションに"UnityFramework.framework"を追加する
  2. pinfo.listでFirebaseAppStoreReceiptURLCheckEnabled = 0を設定する

Link Binary with Librariesセクションに"UnityFramework.framework"を追加する

上記の原因から、先にUnityFrameworkを読み込むようにLink Binary with Librariesに指定して順番を変えてやればクラッシュを回避できます。
ただし、こちらの対応をするにはBitcodeをオフにしないといけません。

pinfo.listでFirebaseAppStoreReceiptURLCheckEnabled = 0を設定する

こちらの対応ではBitcodeをオフにする必要はありません。
ただし、Sandboxでの購入が本番の購入だと認識されるようになるらしいです(未確認)
FirebaseでKPI取ってる方は注意が必要です

参考サイト

該当Issue github.com