web-dev-qa-db-ja.com

CoreDataコード生成用に生成されたファイルパスを特定できませんでした

別のターゲット用にプロジェクトをビルドしているときに、次のエラーが表示されます。

コアデータコード生成用に生成されたファイルパスを判別できませんでした:エラードメイン= 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」フォルダ内にあります。この問題を解決するにはどうすればよいですか?

22
Sakshi

私のケースでは、リモート(ソースまたはヘッド)とマージしたときにModel.xcdatamodeldが競合する結果でした。どういうわけか、この競合はGITによって検出されず、Conflict Freeとしてスライドしました。

解決策:Model.xcdatamodeldをxmlとして(textEditorで)開き、競合を検索します(>>>)。競合を修正して保存します。

3

ShallowThoughtの答えと同様に、最初にターゲットのチェックを外し、次に再チェックしてから再構築する必要があることがわかりました。

43
Tim Newton

Xcodeで、Model.xcdatamodeldモデルを作成し、インスペクターで新しいターゲットの[ターゲットメンバーシップ]チェックボックスをオンにします。

17
shallowThought

私の場合、File Selectorでコード生成がSwiftとして選択されました。コード生成言語をObjective-Cとして選択したため。エラーが消えました。

Objective-Cを選択した後

製品>クリーン

そしてプロジェクトを再構築します

これは私のために働いた。

8

私の場合、.xcdatamodelが存在するディレクトリの名前を変更したため、ターゲットのCompile Sourcesフェーズから古いファイル名エントリが削除されませんでした。

xcdatamodeldを検索し、ターゲットのCompile Sourcesタブから関連する(今では無関係な...)エントリを削除することで、Build Phasesフェーズから古いファイルを削除するだけで済みました。

Remove irrelevant .xcdatamodel files from the <code>Compile Sources</code> phase

  • コアデータデータモデルを含む[〜#〜] all [〜#〜]ターゲットに対してこれを行うことを忘れないでください。

完了したら、実際の現在の.xcdatamodeldファイルがターゲットに追加されていることを確認します。これをして:

a)XcodeのProject Navigator(左の列->最初のアイコン)でファイルをクリックして:

Select your .xcdatamodeld in Xcode's Project Navigator

b)そして、XcodeのFile Inspectorで、このファイルの一部にしたいすべてのターゲットのボックスにチェック(右の列->最初のアイコン)、Target Membershipの下:

Tick all the targets you want your Core Data model to be a part of

5
m_katsifarakis

Core Dataを手動で追加した後(プロジェクトの開始時からではなく)、Clean and Buildが機能しました。

4
MrAn3

モジュールインスペクター>モジュール>現在の製品モジュール

enter image description here

その後、クリーンアップしてビルドします。

1
NCFUSN

NSPersistentContainerを使用している場合、iOS 10以降から使用できます。 [ターゲット]> [全般]> [展開情報]> [展開ターゲット]を10.0+に変更する必要があります。

次に、[製品]> [クリーン&ビルド]。出来た。

1
Abz

上記の答えは正しいですが、これらが機能しない場合は、次のようにします。

  1. モデルのコピーを作成して、どこかに保存します
  2. Xcodeからモデルを削除する
  3. モデルを追加するフォルダーに再度追加します

これで問題が解決しました。お役に立てれば。

1
jarora

私の場合、外部ドライブからビルドしようとしました。プロジェクトを内部ドライブにコピーすると、動作します。

0
catanore