技術と趣味の亜空間

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

【iOS実機エラー】Library not loaded: @rpath/OneSignalCore.framework/OneSignalCore

概要

UnityのOneSignal SDK3.0.9 にアップデートしてiOSの実機ビルドしたら起動直後にクラッシュが発生。
ログを取ってみると、表題のエラーが発生していた。
なお、本件はiOSのみで発生しAndroidでは問題なかった。

エラーログ

2023-02-22 14:49:42.993928+0900 App[990:237591] [general] Error loading /var/containers/Bundle/Application/.../App.app/Frameworks/UnityFramework.framework/UnityFramework (130):  dlopen(/var/containers/Bundle/Application/.../App.app/Frameworks/UnityFramework.framework/UnityFramework, 0x0109): Library not loaded: @rpath/OneSignalCore.framework/OneSignalCore
  Referenced from: <...> /private/var/containers/Bundle/Application/.../App.app/Frameworks/UnityFramework.framework/UnityFramework
  Reason: tried: '/private/var/containers/Bundle/Application/.../App.app/Frameworks/OneSignalCore.framework/OneSignalCore' (errno=2), ....

執筆時の環境

  • Unity 2021.3.3f1
  • OneSignal SDK 3.0.9
  • Xcode Version 13.2.1 (13C100)
  • CocoaPods 1.11.2
  • Ruby 2.6.10p210

解決

CocoaPodsのバージョンが1.11.3未満だと発生する模様。
rbenv 3.2.1をHome Brew経由でインストールし、
ruby2.7.5 以上 & CocoaPodsを1.11.3 に更新し、下記コマンドをXcodeディレクトリ上で実行して再度ビルドすることで起動できるようになった。

rm Podfile.lock
pod cache clean --all
pod install --repo-update

この問題はOneSignalのダウングレードでもおそらく解決できるが、その場合AndroidDependency Resolverの問題が発生するため、バージョンを下げるのはおすすめしない。

参考リンク

github.com