Un nouveau message d'erreur de Xcode 13.3

J’ai été obligé de rétrograder vers un état antérieur de mon app pour avoir malencontreusement effacé l’info.plist principal. Je me suis retrouvé à recopier, fichier par fichier, la version qui tournait sur CoreData, car la version Realm ne passait plus du tout. J’avais 78 erreurs soudainement apparues. On aurait dit que Xcode ne voyait plus aucune déclaration dans un autre fichier, et qu’il ne voyait plus aucune variable non locale « in scope ». Maintenant, il n’y a plus que 4 erreurs, mais je ne sais qu’en faire.
Mac Intel sur Monterey 12.3
Xcode 13.3 build 13E113 :
"
Showing Recent Errors Only

Prepare build
note: Using new build system
note: Planning
note: Build preparation complete
note: Building targets in dependency order
error: Multiple commands produce ‹ /Users/fj/Library/Developer/Xcode/DerivedData/Koussikoussa2-gkvlvkdotsctiyenievnnekwzkss/Build/Intermediates.noindex/Koussikoussa2.build/Debug-iphonesimulator/Koussikoussa2.build/Objects-normal/x86_64/koussikoussa+CoreDataModel.o ›
note: Target ‹ Koussikoussa2 › (project ‹ Koussikoussa2 ›) has compile command for Swift source files
note: Target ‹ Koussikoussa2 › (project ‹ Koussikoussa2 ›) has compile command for Swift source files
error: Multiple commands produce ‹ /Users/fj/Library/Developer/Xcode/DerivedData/Koussikoussa2-gkvlvkdotsctiyenievnnekwzkss/Build/Intermediates.noindex/Koussikoussa2.build/Debug-iphonesimulator/Koussikoussa2.build/Objects-normal/x86_64/koussikoussa+CoreDataModel.stringsdata ›
note: Target ‹ Koussikoussa2 › (project ‹ Koussikoussa2 ›) has compile command for Swift source files
note: Target ‹ Koussikoussa2 › (project ‹ Koussikoussa2 ›) has compile command for Swift source files
error: Multiple commands produce ‹ /Users/fj/Library/Developer/Xcode/DerivedData/Koussikoussa2-gkvlvkdotsctiyenievnnekwzkss/Build/Intermediates.noindex/Koussikoussa2.build/Debug-iphonesimulator/Koussikoussa2.build/DerivedSources/CoreDataGenerated/koussikoussa/koussikoussa+CoreDataModel.swift ›
note: Target ‹ Koussikoussa2 › (project ‹ Koussikoussa2 ›): DataModelCodegen /Users/fj/Documents/workspace/D_veloppement/Development/koussikoussa2/Koussikoussa2/Koussikoussa2/Data/CoreDataManagement/koussikoussa.xcdatamodeld
note: Target ‹ Koussikoussa2 › (project ‹ Koussikoussa2 ›): DataModelCodegen /Users/fj/Documents/workspace/D_veloppement/Development/koussikoussa2/Koussikoussa2/Koussikoussa2/koussikoussa.xcdatamodeld
error: Multiple commands produce ‹ /Users/fj/Library/Developer/Xcode/DerivedData/Koussikoussa2-gkvlvkdotsctiyenievnnekwzkss/Build/Products/Debug-iphonesimulator/Koussikoussa2.app/koussikoussa.momd ›
note: Target ‹ Koussikoussa2 › (project ‹ Koussikoussa2 ›) has compile command with input ‹ /Users/fj/Documents/workspace/D_veloppement/Development/koussikoussa2/Koussikoussa2/Koussikoussa2/Data/CoreDataManagement/koussikoussa.xcdatamodeld ›
note: Target ‹ Koussikoussa2 › (project ‹ Koussikoussa2 ›) has compile command with input ‹ /Users/fj/Documents/workspace/D_veloppement/Development/koussikoussa2/Koussikoussa2/Koussikoussa2/koussikoussa.xcdatamodeld ›
"
Je retiens « multiple command with input » et « target has compile command with input » mais je ne sais qu’en faire. Quelqu’un a une idée ? Thony ? Maxime ?

Salut @fjacquemin,

Tu as déjà essayé la solution de ce topic :

Merci beaucoup, j’avais bien cherché sur Stackoverflow, mais je n’avais rien trouvé. Je ne suis pas tiré d’affaire, mais j’ai découvert dans le target un fichier « project.pbxproj » dans lequel j’ai, par exemple quatre lignes comme celles-ci:
"
242AE29727F2F08F00D4FF03 /* koussikoussa.xcdatamodeld in Sources / = {isa = PBXBuildFile; fileRef = 248BDEC727F1B5B7001989ED / koussikoussa.xcdatamodeld /; };
242AE29827F2F09000D4FF03 /
koussikoussa.xcdatamodeld in Sources / = {isa = PBXBuildFile; fileRef = 248BDEC727F1B5B7001989ED / koussikoussa.xcdatamodeld /; };
242AE29927F2F09500D4FF03 /
koussikoussa.xcdatamodeld in Sources / = {isa = PBXBuildFile; fileRef = 248BDEE527F1B60F001989ED / koussikoussa.xcdatamodeld /; };
242AE29A27F2F09600D4FF03 /
koussikoussa.xcdatamodeld in Sources / = {isa = PBXBuildFile; fileRef = 248BDEE527F1B60F001989ED / koussikoussa.xcdatamodeld */; };
"
C’est un fichier modèle pour CoreData, est-ce normal qu’il soit répété quatre fois ? suis-je autorisé à détruire trois de ces lignes ?

Merci infiniment ! Je suis allé voir sur le forum développeur Apple parce que le post sur StackOverflow poussait des ramifications jusque là, j’ai trouvé des solutions. Mais, finalement, ce qui a fini par me sortir d’affaire, c’est de redémarrer mon Mac !
Je l’ai fait parce que je n’arrivais plus à accéder au site développeur et donc aux forums, et j’ai aussi, à tout hasard, vérifié que j’avais bien les dernières définitions de virus. Et maintenant, ça roule.
Merci encore, je n’y serais pas arrivé sinon, je n’avais pas su cherché comme il faut sur Stack Overflow. Un truc là-dessus serait d’ailleurs une bonne idée, car il ne suffit pas d’avoir une mine d’or, il faut savoir chercher. La preuve. :+1:

@fjacquemin Je comprends que parfois c’est difficile de se retrouver dans l’amas de texte de la console quand il y a des erreurs. Mais quand il y a un code d’erreur ou du moins une définition de l’erreur, explicitement marqué, il faut l’utiliser pour rechercher la solution à l’erreur.

Et voici le code d’erreur, de ton erreur ci-dessus :

error: Multiple commands produce

Donc, il ne faut pas un cours sur StackOverflow, mais un cours sûr comment reconnaitre un code d’erreur :grin:

1 « J'aime »

Hello,

Ce que je peux te donner comme conseils (pour le futur), c’est d’utiliser un outil de versionning

Tu te crée un compte github, et chaque soir quand tu as fini, avant d’aller dormir, tu commit (enregistres) ton travail, et tu le push (envoie) sur le serveur

Le principal intérêt c’est que tu peux revenir en arrière à n’importe quelle date antérieure, et récupérer un fichier ne sera plus un problème :slight_smile:

1 « J'aime »

Oui, je te remercie, c’est un excellent conseil. Je ne fais pas assez de commit, j’attends d’avoir des changements significatifs, ce n’est pas assez. je vais suivre ton conseil, afin de ne pas avoir à remonter de plus d’un jour, voire d’un fichier.

1 « J'aime »

Il est souvent recommandé de faire de nombreux petits commits, plutôt que des gros qui intègrent de nombreux changement. Ca permet de facilement comprendre les modifications associées à chaque commit et aussi de revenir en arrière de façon plus modulaire.