Bonne après-midi,
Après la mise à jour vers la dernière version de Xcode pour le moment (version 10.0), le projet ne peut pas être généré car il a détecté des erreurs concernant l'erreur "Commande CompileSwift a échoué.
Comment résoudre ces erreurs? Ils apparaissent dans la plupart des pods (j'utilise CocoaPods) que j'utilise dans mon projet.
J'ai essayé de mettre à jour la version du pod et les pods avec la dernière version disponible, mais le problème persiste.
J'ai beaucoup cherché sur le Web et il y a très peu d'informations concernant ce problème.
Cordialement.
Actuellement, ma construction fonctionne . Voici les étapes que j'ai essayées jusqu'à ce que tout fonctionne enfin:
Et si vous ne possédez pas ce Pod, vous pouvez peut-être essayer de suivre les mêmes étapes que certains anciens Pod que vous pourriez rencontrer dans votre projet.
Information ajoutée: aussi Si vous avez une erreur de code dans un pod, vous devez d’abord résoudre ce problème de code, puis essayer de recompiler le projet.
Je vais copier les modifications apportées à mon projet.pbxproj. Je sais que ce n'est pas très utile mais c'est la seule chose qui a changé dans la différence de git commit:
Removed: BDC9821B1E9BD1B600ADE0EF /* (null) in Sources */ = {isa = PBXBuildFile; };
Added: BDC9821B1E9BD1B600ADE0EF /* BuildFile in Sources */ = {isa = PBXBuildFile; };
J'espère que cela peut aider,
Cordialement.
Pour moi, tout projet de nettoyage fonctionne en utilisant ShiftCommandK Et OptionShiftCommandK.
Nettoyez l’application et essayez de la reconstruire en utilisant ShiftOptionCommandK puis CommandB.
Mon problème était dû à la non-existence d'un Switf CommonCrypto natif, à l'utilisation d'un en-tête de pontage et d'une cible qui, avec un peu de magie, l'incluait dans la construction. Comme CommonCrypto est maintenant natif, j'ai résolu le problème en supprimant la cible et le # import. Au lieu de cela, j'ai ajouté une importation CommonCrypto à l'endroit où je l'ai utilisé.
C'est un problème connu avec Swift 4.2 et Xcode 10. J'ai trouvé un article ici qui le corrige pour moi: https://github.com/Yummypets/YPImagePicker/issues/236
En bref, accédez aux paramètres de construction de vos projets et ajoutez un paramètre défini par l'utilisateur nommé Swift_ENABLE_BATCH_MODE et définissez sa valeur sur NO.
Auparavant, j'avais essayé chacune des méthodes suivantes suggérées ailleurs (reconstruction, sortie de Xcode, nettoyage et reconstruction, nettoyage des fichiers de données dérivées). Aucun d'entre eux a travaillé.
Une fois que j'ai ajouté le paramètre de définition de l'utilisateur défini dans l'article, Swift m'a alors dit la vraie erreur. Dans mon cas, c’était un manquant}, mais il pourrait y avoir un certain nombre de problèmes.
Il est fort probable que vous ne lisiez pas tout le message d'erreur. Si vous regardez ci-dessus le message "La commande CompileSwift a échoué avec un code de sortie différent de zéro", vous devriez trouver une spécification comme celle-ci:
Dans cet exemple, j'avais deux fichiers avec le même nom. Une fois que j'ai résolu le problème, tout a fonctionné comme il se doit.
J'ai fait ce qui suit et ça marche à merveille:
Locations
name__Derived Data
La fenêtre du Finder s'ouvrira et affichera les dossiers suivants:
DerivedData
name__Archives
name__iOS DeviceSupport
UserData
name__DocumentationCache
name__iOS Device Logs
Quitter Xcode
DerivedData
(il ne contient qu'un cache de versions précédentes)Laissez-moi partager mon expérience pour résoudre ce problème.
Cible ouverte -> phases de construction -> copier les ressources du bundle et supprimer info.plist.
Remarque: Si vous utilisez des extensions, supprimez le fichier info.plist de cette extension des cibles.
J'espère que ça aide.
dans mon cas, le problème était dû au fait que l'extension du kit de surveillance avait été définie sur Swift 3, tandis que l'objectif du projet principal était défini sur Swift 4.2.
J'ai tenté
pod install --repo-update
et tout cela n'a toujours pas résolu le problème. Redémarrer le Mac a fait le tour .
ERROR = La commande CompileSwiftSources a échoué avec un code de sortie différent de zéro
Dans mon cas, quand j'ai trouvé cette erreur, je me suis retrouvé à l'étroit avec la compilation. Mais quand je vois des réponses à des problèmes liés. J'ai trouvé un fichier de duplication sur mon projet. Où le même viewController était là en tant que fichier de classe. Alors oui, quand je l'ai compris, j'ai changé le nom pour un nouveau. Et oui les choses ont changé !!!
La re-déclaration de classe sera le problème. vérifier la classe en double et construire.
J'ai cherché sur tout le Web mais je n'ai trouvé aucune solution à ce problème. J'ai réussi à supprimer le chemin "Common Crypto" dans la section: IMPORT Paths dans les paramètres de construction. Le problème semble être que la "crypto commune" existe maintenant dans la base du sdk ios 12.
Alors":
Supprimez simplement le chemin du fichier "crypto commun" dans les paramètres de construction et le projet se construira comme un charme! :)
Dans mon cas, il y avait une entrée en double pour un cadre dans Fichiers d'entrée de Cadre de Carthage section dans Build Phases
L'exécution de pod install --repo-update
ainsi que la fermeture et la réouverture de x-code ont résolu ce problème sur tous mes pods portant cette erreur.
Voici la solution: - Allez dans les paramètres de construction - Recherchez Swift_COMPILATION_MODE - S'il s'agit de "Whole Module" pour la configuration Release, remplacez-le par "Incremental" . - Archiver maintenant.
Lorsque vous définissez le paramètre sur "Incrémental", le processus aboutit.
Le mien était un problème d'espacement des noms. J'ai eu deux fichiers avec le même nom. Il suffit de les renommer et le problème a été résolu.
Avant de regarder ailleurs, il faut toujours cocher la case "moi stupide" :)
Pour moi, le message d'erreur disait que j'avais trop de fichiers de simulateur ouverts pour construire Swift. Quand j'ai quitté le simulateur et construit à nouveau, tout a fonctionné.
Je viens d'ajouter à cette question. Mon problème n'avait rien à voir avec CommonCrypto. Il a créé une nouvelle application Single App et a été testé. Le compilateur se plaignait d'utiliser Swift 4.2
Le passage de la langue Swift à la version 4.0 dans les paramètres de construction a résolu le problème. Pas sûr que ce soit un bug.
J'ai également rencontré le même problème et j'ai fait ce que @cdeerinck avait suggéré et obtenu le suivant link qui suggérait d'ajouter une variable définie par l'utilisateur au Build Settings pour désactiver le mode de traitement par lots, c'est-à-dire ajouter une nouvelle variable définie par l'utilisateur. nommé Swift_ENABLE_BATCH_MODE et mis à NO, j'ai pu mieux comprendre le problème et j'ai appris que l'erreur était dans un cadre utilisant CommonCrypto qui a été ajouté à il (par moi) mais depuis Xcode 10, il est exposé de manière native dans le cadre de Swift (pour les plates-formes Apple uniquement), et son ajout (ou son existence par rapport à la version précédente) provoquait une collision de noms et par conséquent, il jetait l'erreur. Pour en savoir plus, reportez-vous au ce lien qui explique le problème plus en détail.
J'ai le même problème et ma solution est de changer une petite chose dans les paramètres de construction
Swift_COMPILATION_MODE = singlefile;
Swift_OPTIMIZATION_LEVEL = "-O";
Je l'ai eu au hasard depuis Xcode 10 . Je pense que cela se produit lorsque je modifie quelque chose dans le code alors que la construction commence . La prochaine construction fonctionne à chaque fois.
Il semble que ce soit une erreur assez vague, donc je vais partager ce que j'ai fait pour résoudre le problème quand je suis tombé sur ceci:
À l’aide de Xcode 10.1 et de Swift 4.2, j’ai essayé à peu près toutes les suggestions présentées ici, mais aucune d’entre elles n’a fonctionné pour moi, puis j’ai réalisé que la dépendance que j’utilisais n’était pas compatible avec Swift 4.2 et que c’était à cause de cette erreur que je rencontrais. Donc, pour résoudre ce problème, je devais simplement forcer ce module à utiliser Swift 4.0 en mettant ceci à la fin de ma Podfile
:
post_install do |installer|
installer.pods_project.targets.each do |target|
if ['TKRadarChart'].include? target.name
target.build_configurations.each do |config|
config.build_settings['Swift_VERSION'] = '4.0'
end
end
end
fin