【Swift/Realm】Undefined symbolエラーでアーカイブ出来ない問題の解決法!

この記事からわかること
- SwiftのRealmで発生したエラーの解決法
- アーカイブ出来ない原因
- Undefined symbol: _$s10RealmSwift0A14CollectionImplPAAE12makeIteratorAA11RLMIteratorVy7ElementQzGyF
- Undefined symbol: _$s10RealmSwift7ResultsVyxGAA0A14CollectionImplAAMc
- missing module map file: '/Users/<ユーザー>/Desktop/<プロジェクト名>/Pods/Target Support Files/GoogleDataTransport/GoogleDataTransport.modulemap
\ アプリをリリースしました /
RealmSwift使用時にアーカイブがUndefined symbolエラービルド出来ない問題
環境
- Xcode:14.1
- Realm:10.29.0
- iOS:16.1
- ライブラリ管理:CocoaPods
シミュレーターや実機へのビルドの際は問題なかったのですがアプリ審査のためにアーカイブ(Any iOS Device arm64)を作成しようとしたところ以下のようなエラーが発生しました。
Undefined symbol:未定義エラー
発生したのは「Undefined symbol:未定義エラー」でした。とはいえエラー内容が少なく何が起きているか分かりません。
調べてみるとRealm Swiftのバージョンを最新にすることで解決することができるようです。
参考文献:Xcode 14.1 not building due to undefined symbols #8015
解決方法
私の場合はRealmのバージョンが10.29.0でしたので、これを現在の最新バージョンに更新していきます。
- 使用 :10.29.0
- 最新 :10.34.0
CocoaPodsでライブラリを更新するpod update
コマンドを実行します。
他のライブラリも含めてこれで最新バージョンに更新されました。しかし再度ビルドしようとすると今度は以下のようなエラーが発生しました。これはRealmとは関係ないライブラリで起きたエラーのようです。
なので一度pod deintegrate
でリセットしたあと、再度インストールし直すことでエラーを解消することが出来ました。
おすすめ記事:【Xcode】The app references non-public selectors : authenticationDidCompleteWithError:の解決法!アーカイブエラー
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。