[RealmSwiftエラー]Multiple commands produceが表示
RealmSwift関連のエラーにはよく悩まされるのですが、丸1日苦戦したので備忘として。
エラー内容
エラー詳細
リンク関連はぼかしてますが、最初と最後のエラーは以下の通り
Multiple commands produce XXXXXXXXXリンク/Realm.framework': 1) Target 'Realm-iOS11.2' has create directory command with output XXXXXXXXリンク/Realm.framework' 2) Target 'Realm-iOS14.0' has create directory command with output XXXXXXXXリンク/Realm.framework'
事象
・プロジェクトにはRealmSwiftをCocoaPodsでインポート済み
・ここ最近iOS14対応のWidgetKit対応のために「Pod update」や、「Pod install」を実行したばかり
・実機インストールではエラーが表示されないが、アプリ申請用にArchiveしようとした際にエラーが表示して先に進まない
・「Clean Build Folder」実行、「Derived Data」の削除、Xcodeの再起動などは試し済み
Derived dataをチェック
Derived dataが格納されているディレクトリをチェックすると、以下の通りRealmSwiftに関して2つ存在していることが判明
改めてXcode内部をチェック
・Finderや「Project Navigator(Xcodeの左側のディレクトリ一覧)」でPodsを見ると「RealmSwift-iOS11.2」と「RealmSwift-iOS14.0」と並列で並ぶファイルが結構あることが判明
・「Products」に至っては同じ名称で二つFrameworkが存在しており、これが原因と推測
解決策
・上の画像のFrameworkと「Support Files」の中の「RealmSwift-iOS11.2」に関するファイルを全て削除
・Dereived dataをディレクトリ毎削除
これによって無事にArchiveできるようになりました。
その他
No such moduleのエラーでハマった件もそうですが、RealmSwiftというかXcodeの仕組みを理解しないままCocoa podsに頼り切ってるので、Xcode全般の構造理解も必要だなと感じました。
時間があるときに勉強したいと思います。
お知らせ
ヒヨコ歩数計という歩きながらヒヨコが育っていくアプリを作って、いろんな方に結構使ってもらっています。RealmSwift, Admobの動画・インステ・バナー広告、UICollectionView、iOS-Charts、UITableViewを使用しているので、是非ご利用ください!