Unityで開発したiosアプリをxcodeを使ってiPhone実機にビルドしようとしていた。
最初にunityでのbuildは成功!
しかし、Xcodeでのビルド中に「Undefined symbol」エラーが発生!
このエラーの解決方法を見つけたので、共有したいと思います。
Undefined symbolエラーの発生
xcodeを使ってunityでビルドしたiosアプリを実機ビルドしようとしたら次のようなエラーが発生!
Undefined symbol: _OBJC_CLASS_$_UNCalendarNotificationTrigger
Undefined symbol: _OBJC_CLASS_$_UNLocationNotificationTrigger
Undefined symbol: _OBJC_CLASS_$_UNMutableNotificationContent
Undefined symbol: _OBJC_CLASS_$_UNNotificationRequest
Undefined symbol: _OBJC_CLASS_$_UNNotificationSound
Undefined symbol: _OBJC_CLASS_$_UNPushNotificationTrigger
Undefined symbol: _OBJC_CLASS_$_UNTextInputNotificationResponse
Undefined symbol: _OBJC_CLASS_$_UNTimeIntervalNotificationTrigger
Undefined symbol: _OBJC_CLASS_$_UNUserNotificationCenter
エラーの原因:フレームワークが追加されていない
これらのエラーは、UserNotifications.framework
に関連するシンボルが解決できないために発生していた。
UserNotifications.framework
はiosの通知機能に関するフレームワークのことである。
どうやらエラーの原因は、通知機能に関するフレームワークであるUserNotifications.framework
がリンクされていなかったことらしい。
筆者のunityプロジェクトでは通知機能を実装していなかったがiosでビルドするときは、このフレームワークが要求されるらしい。
解決策:Link Binary With Librariesセクションの確認と修正
次の手順で不足している2つのフレームワークを追加していく
・下の写真のようにproject>general>target >UnityFrameworkを選択
・+ボタンをクリック
・UserNotifications.flameworkを追加
・UserNotificationsUI.flameworkを追加

フレームワークを追加すると実機でのビルドが成功した
まとめ
エラーの原因はフレームワークの不足だった
フレームワークを追加することで解決!
コメント