web-dev-qa-db-fra.com

Impossible de déterminer les chemins de fichier générés pour la génération de code CoreData

En construisant mon projet pour une cible différente, j'obtiens cette erreur:

Impossible de déterminer les chemins de fichier générés pour le code Core Data génération: Domaine d'erreur = Code NSCocoaErrorDomain = 260 "Aucune version actuelle du modèle At chemin /Users/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Model.xcdatamodeld:" UserInfo = {NSFilePath =/Utilisateurs/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Modèle.xcdatamodeld, NSLocalizedDescription = Aucune version actuelle du modèle sur le chemin /Users/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Model.xcdatamodeld:}

Le chemin mentionné par erreur est "

/Users/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Model.xcdatamodeld

"mais le dossier" SRT "se trouve dans le dossier" Temp "dans la structure de mon dossier. Comment puis-je résoudre ce problème?

19
Sakshi

Dans My Case, cela résultait des conflits entre Model.xcdatamodeld lors de la fusion avec Remote (Source ou Head). D'une manière ou d'une autre, ce conflit n'a pas été détecté par GIT et a été traité comme sans conflit. 

Résolution: Ouvrez Model.xcdatamodeld en tant que XML (avec TextEditor) et recherchez les conflits (>>>). Résoudre le conflit et enregistrer.

2
redEyeProgrammer

Semblable à la réponse de shallowThought, j'ai découvert que je devais d'abord décocher la cible, puis la revérifier, puis la reconstruire.

41
Tim Newton

Sous Xcode, sélectionnez votre modèle Model.xcdatamodeld et cochez la case "Appartenance à la cible" pour votre nouvelle cible dans l'inspecteur.

17
shallowThought

Dans mon cas, dans la sélection de fichiers, la génération de code a été sélectionnée comme étant Swift . Lorsque j'ai sélectionné le langage de génération de code comme Objective-C . Erreur disparue.

Après avoir sélectionné Objective-C 

Produit> Nettoyer

et ensuite Reconstruisez le projet.

Cela a fonctionné pour moi.

8
Sandeep Singh Rana

Just Clean and Build a fonctionné pour moi après avoir ajouté manuellement Core Data (et non depuis le début du projet).

3
MrAn3

Inspecteur de module> Module> Module de produit actuel

 enter image description here

Nettoyez et construisez ensuite.

1
NCFUSN

Si vous utilisez NSPersistentContainer, il est disponible à partir de iOS 10 + . Vous devez modifier la cible> Général> Informations de déploiement> Cible de déploiement sur 10.0+.

Ensuite, Produit> Clean & Build. Ça a marché. 

1
Abz

Les réponses données ci-dessus sont exactes, mais si elles ne fonctionnent pas, alors:

  1. Faites une copie de votre modèle et stockez-le quelque part
  2. Supprimer le modèle de Xcode
  3. Ajoutez à nouveau le modèle dans le dossier dans lequel vous souhaitez l'ajouter.

Cela a résolu mon problème. J'espère que cela t'aides.

1
jarora

Dans mon cas, j'avais renommé le répertoire dans lequel mon fichier .xcdatamodel se trouvait, de sorte que l'ancienne entrée de nom de fichier n'était pas supprimée de la phase Compile Sources de ma cible.

Tout ce que je devais faire était de supprimer l'ancien fichier de la phase Compile Sources en recherchant xcdatamodeld et en supprimant l'entrée appropriée (désormais non pertinente ...) dans l'onglet Build Phases de ma cible:

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

  • N'oubliez pas de faire ceci pour ALL les cibles qui contiennent votre modèle de données Core Data. 

Une fois que vous avez terminé, assurez-vous que votre fichier .xcdatamodeld actuel est ajouté à votre cible. Tu fais cela:

a) En cliquant sur le fichier dans le Project Navigator de Xcode (colonne de gauche -> première icône):

 Select your .xcdatamodeld in Xcode's Project Navigator

b) Et cochez ensuite les cases de toutes les cibles dont vous souhaitez que ce fichier fasse partie, dans l'inspecteur de fichiers de Xcode (colonne droite -> première icône), sous Target Membership:

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

0
m_katsifarakis

Dans mon cas, j'ai essayé de construire un lecteur externe . Copiez le projet sur le lecteur interne, et cela fonctionnera.

0
poima