【iOS実機エラー】Library not loaded: @rpath/OneSignalCore.framework/OneSignalCore
概要
UnityのOneSignal SDK を 3.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), ....
執筆時の環境
解決
CocoaPodsのバージョンが1.11.3
未満だと発生する模様。
rbenv 3.2.1をHome Brew経由でインストールし、
ruby を 2.7.5
以上 & CocoaPodsを1.11.3
に更新し、下記コマンドをXcodeディレクトリ上で実行して再度ビルドすることで起動できるようになった。
rm Podfile.lock pod cache clean --all pod install --repo-update
この問題はOneSignalのダウングレードでもおそらく解決できるが、その場合AndroidでDependency Resolverの問題が発生するため、バージョンを下げるのはおすすめしない。