別のターゲット用にプロジェクトをビルドしているときに、次のエラーが表示されます。
コアデータコード生成用に生成されたファイルパスを判別できませんでした:エラードメイン= NSCocoaErrorDomainコード= 260 "パス/Users/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Model.xcdatamodeldにモデルの現在のバージョンがありません"UserInfo = {NSFilePath =/Users/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Model.xcdatamodeld、NSLocalizedDescription =パス/ Users/abc/Documents/Code/xyz-iosにモデルの現在のバージョンがありません/ABC/iPhoneXMPP/SRT/Model.xcdatamodeld:}
エラーに記載されているパスは「
/Users/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Model.xcdatamodeld
「しかし、「SRT」フォルダはフォルダ構造の「Temp」フォルダ内にあります。この問題を解決するにはどうすればよいですか?
私のケースでは、リモート(ソースまたはヘッド)とマージしたときにModel.xcdatamodeldが競合する結果でした。どういうわけか、この競合はGITによって検出されず、Conflict Freeとしてスライドしました。
解決策:Model.xcdatamodeldをxmlとして(textEditorで)開き、競合を検索します(>>>)。競合を修正して保存します。
ShallowThoughtの答えと同様に、最初にターゲットのチェックを外し、次に再チェックしてから再構築する必要があることがわかりました。
Xcodeで、Model.xcdatamodeld
モデルを作成し、インスペクターで新しいターゲットの[ターゲットメンバーシップ]チェックボックスをオンにします。
私の場合、File Selectorでコード生成がSwiftとして選択されました。コード生成言語をObjective-Cとして選択したため。エラーが消えました。
Objective-Cを選択した後
製品>クリーン
そしてプロジェクトを再構築します
これは私のために働いた。
私の場合、.xcdatamodelが存在するディレクトリの名前を変更したため、ターゲットのCompile Sources
フェーズから古いファイル名エントリが削除されませんでした。
xcdatamodeld
を検索し、ターゲットのCompile Sources
タブから関連する(今では無関係な...)エントリを削除することで、Build Phases
フェーズから古いファイルを削除するだけで済みました。
完了したら、実際の現在の.xcdatamodeldファイルがターゲットに追加されていることを確認します。これをして:
a)XcodeのProject Navigator(左の列->最初のアイコン)でファイルをクリックして:
b)そして、XcodeのFile Inspectorで、このファイルの一部にしたいすべてのターゲットのボックスにチェック(右の列->最初のアイコン)、Target Membership
の下:
Core Dataを手動で追加した後(プロジェクトの開始時からではなく)、Clean and Buildが機能しました。
NSPersistentContainerを使用している場合、iOS 10以降から使用できます。 [ターゲット]> [全般]> [展開情報]> [展開ターゲット]を10.0+に変更する必要があります。
次に、[製品]> [クリーン&ビルド]。出来た。
上記の答えは正しいですが、これらが機能しない場合は、次のようにします。
これで問題が解決しました。お役に立てれば。
私の場合、外部ドライブからビルドしようとしました。プロジェクトを内部ドライブにコピーすると、動作します。