Missing required module 'SwiftShims'

Bonjour à tous,

ceci est mon 1er message à cette communauté. Voilà, je débute en programmation et tente de faire le 1er exercice de calculatrice, seulement quand je veux lancer le simulateur cette erreur apparait :
missing required module ‹ SwiftShims ›

Je ne vois pas ce qui ne va pas. Quelqu’un aurait-il une piste à me fournir?

Bon, j’ai réussi à m’en sortir de mon 1er problème en suppriment le fichier derived data.

Maintenant, voilà le soucis que j’ai et ceux même si je commence une nouvelle app. Je peux parfaitement lancer une 1ère fois ma simulation, mais lors de la 2ème tentative voici l’erreur qui s’affiche :

/Users/christophe 1/Library/Mobile Documents/com~apple~CloudDocs/xCode/Calculatrice (aide)/build/Debug-iphonesimulator/Calculatrice (aide).app: resource fork, Finder information, or similar detritus not allowed

Command CodeSign failed with a nonzero exit code

Un appui sur Cmd + Shift + K résout le problème mais je voudrais connaitre l’origine de ce soucis et la raison? C’est saoulant de devoir faire cela régulièrement.

Bonjour Christophe,

En voyant ce chemin, je suis assez étonné. Est-ce que tu utiliserais un dossier iCloud pour tes sources ou ton projet ? Je ne pense pas que Xcode fonctionne bien avec un dossier synchronisé en permanence.

Effectivement, je suis bien sur un dossier iCloud. Je vais explorer cette piste.

Seulement, j’utilise ce système de fonctionnement depuis un petit moment (cela fait un moment que je souhaite apprendre à programmer et que j’ai tenté bon nombre de petits tutoriels; mais rien de la qualité de votre programme : bravo!)

Pour éventuellement vous aiguiller, j’ai effectué récemment un formatage de mon disque dur et procédé à une restauration à l’aide de Time Machine. Seulement, je me retrouve avec un dossier racine nommé « Christophe 1 » alors que jusque là il était nommé « Christophe ». Le problème pourrait-il venir de là?

Après essai, il semblerai que le problème vienne bien du fait d’utiliser iCloud. J’avoue être un peu surpris car je le faisais sans soucis avant. L’essentiel est que tout fonctionne de nouveau.
Merci pour votre aide.

Alors là, je sais. Tu as un fichier qui a dû être écrit en dehors de Xcode et intégré par la suite, peut-être le fichier d’aide, justement, et qui est encombré de métadonnées venues du Finder en tre autres. D’où une erreur au moment du Build, CodeSign error,et qui t’envoie le méprisant message que ton fichier comporte ces métadonnées, « resource fork, Finder information or similar detritus not allowed » au moment de joindre ce fichier au noble bundle de l’application.

Va dans le terminal, et, sur fichier applique la commande xattr -c qui enlèvera ces saletés et rendra ton fichier tout propre, comme un sou neuf. Attention, il s’agit du fichier tel qu’il est au sein du bundle, donc, il faut bien choisir celui qui est au bout du chemin indiqué par le message d’erreur, et non tel qu’il apparaît montré dans le Finder ou dans la colonne de gauche de Xcode qui est une apparence fictive propre à rendre compréhensible et à modifier les fichiers dans Xcode.

Hop ! Par magie, l’erreur disparaît.

Merci pour cette réponse. je ne suis sur mon Mac pour l’instant mais je vais essayer ça tout à l’heure.
Effectivement je n’ai pas bougé volontairement mes dossiers mais la restauration par TimeMachine m’a modifiée le dossier racine. Cela peut venir de là.
En tout cas un grand merci et bravo à cette communauté Française hyper réactive et compétente.

Je vous tiens au courant de la suite.

Je ne dois pas saisir ce qu’il faut. Il faut bien inscrire
xattr -c /Users/christophe 1/Library/Mobile Documents/com~apple~CloudDocs/xCode/Calculatrice (aide)/build/Debug-iphonesimulator/Calculatrice (aide).app
?

Je ne connais pas cette commande xattr mais la règle est tout le temps la même : en Unix si ton chemin a des espaces ou des caractères spéciaux (ce qui est ton cas), tu dois utiliser des guillemets autour de ton chemin :

maCommande "/Users/christophe 1/Library/Mobile Documents/com~apple~CloudDocs/xCode/Calculatrice (aide)/build/Debug-iphonesimulator/Calculatrice (aide).app"

Pour t’éviter tous tracas en programmation, je te conseille de n’utiliser que des dossiers sans caractères spéciaux et qui ne sont pas modifiés par un programme externe (iCloud, Dropbox, etc.).

Je pense qu’il existe un moyen de renommer ton dossier utilisateur au niveau de macOS (pour corriger le bug de TimeMachine) mais je ne sais pas quelles seront les conséquences et si tu n’auras pas de bug sur certaines apps.

Le plus simple, c’est de suivre toi-même le chemin en ouvrant chaque folder jusqu’à atteindre le fichier que tu désigne le message d’erreur de Xcode ; tu drague ce fichier sur ta fenêtre de Terminal et tu le lâches. Tu auras la surprise de voir s’écrire tout seul le chemin correct du fichier auquel tu t’apprêtes à appliquer la commande xattr -c.
Voici un extrait de la page de manuel de la commande :
"
XATTR(1) BSD General Commands Manual XATTR(1)

NAME

xattr – display and manipulate extended attributes

SYNOPSIS

xattr [ -lrsvx ] file …
xattr -p [ -lrsvx ] attr_name file …
xattr -w [ -rsx ] attr_name attr_value file …
xattr -d [ -rsv ] attr_name file …
xattr -c [ -rsv ] file …
xattr -h | –help

DESCRIPTION

The xattr command can be used to display, modify or remove the extended
attributes of one or more files, including directories and symbolic
links. Extended attributes are arbitrary metadata stored with a file,
but separate from the filesystem attributes (such as modification time or
file size). The metadata is often a null-terminated UTF-8 string, but
can also be arbitrary binary data."

1 « J'aime »

Merci Maxime, je vais suivre votre conseil. Cela semble effectivement beaucoup plus stable comme ça. J’avais bien pensé à changer le nom de la racine de mon Mac mais cela va mettre des erreurs dans plusieurs autres programmes. Je vais m’adapter.
En tout cas merci pour votre grande présence et qualité d’explication.
Et merci fjacquemin, par curiosité je vais tenter les démarches donnés. Je vous tiendrais au courant.

1 « J'aime »