UnityのUndefined symbolエラーに、iOS実機ビルドで当たりました。9件出て止まり、通知機能はひとつも実装していません。
原因は UserNotifications.framework がリンクされていなかったことでした。Xcodeで2つのフレームワークを追加したら通りました。以下は実際に踏んだ手順です。
この記事について — 筆者が実際に遭遇し、解決した内容です(記事種別: 実測)。掲載しているスクリーンショットは実機の画面です。原因の解説部分には、Unity Discussions の同種の報告を参照しています。
<!– 要素材: Unity のバージョン、Xcode のバージョン、Mobile Notifications パッケージの有無。 実測記事なので環境を明記したほうが読者の再現性が上がる。分かれば追記する –>
出たエラー
Unity 側のビルドは成功し、Xcode で実機ビルドに進んだところで止まりました。
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
9件すべてが 0 で始まっています。これは UserNotifications フレームワークのクラスに付く接頭辞です。エラーの中身がバラバラに見えても、出どころは1つでした。
なぜ通知を使っていないのに出るのか
Undefined symbol は、コードがそのシンボルを参照しているのに、リンク時に実体が見つからないときに出ます。今回で言えば、ビルドされたコードが UNUserNotificationCenter などを呼んでいる。ところが、その実装を持つ UserNotifications.framework がリンク対象に入っていませんでした。
腑に落ちなかったのは、自分では通知を一切実装していない点でした。
調べると、Unity Discussions に同じ症状の報告がありました。iOSビルドで UserNotifications フレームワークが不足して失敗するのは、繰り返し起きている問題のようです。
自分で通知コードを書いていなくても、依存しているパッケージが通知のシンボルを参照していることがあります。Unity の Mobile Notifications パッケージのほか、広告・解析・各種SDKが内部で使う場合です。UnityFramework にはその参照が残るのに、Xcodeプロジェクト側でフレームワークが自動リンクされない。ここがずれていました。
エラーの原因は自分のコードではなく、依存関係のほうにありました。
直した手順
Xcode で UnityFramework ターゲットにフレームワークを2つ追加します。
- Xcode でプロジェクトを開く
- 左のプロジェクトファイルを選択 → TARGETS から 0 を選ぶ
- General タブ → Frameworks and Libraries セクション
- +ボタンをクリック
UserNotifications.frameworkを追加UserNotificationsUI.frameworkを追加

ターゲットの選択を間違えないでください。 Unity-iPhone ではなく