30 votes

Xcode 8 beta 4: la construction échoue avec «Les binaires suivants utilisent des versions incompatibles de Swift:» erreur

Avec de nouveaux Xcode 8 beta 4 nous avons commencé à avoir l'erreur suivante lors de CopySwiftLibs phase de construction:

Effective srcDirs: {(

    <DVTFilePath:0x7f865961e970:'/Volumes/Data/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator'>,

    <DVTFilePath:0x7f8657d02b20:'/Volumes/Data/Xcode-beta.app/Contents/Developer/Toolchains/Swift_2.3.xctoolchain/usr/lib/swift/iphonesimulator'>

)}

erreur: Les fichiers binaires suivants utilisation des versions incompatibles de Swift:

/Users/user/Projects/git/iphone-swift-1/DerivedData/myApp/Build/Products/Debug-iphonesimulator/myApp.app/myApp

/Users/utilisateur/Projets/git/iphone-swift-1/myApp/myAppApi.cadre/myAppApi

myAppApi est un sous-projet dans l'espace de travail qui contient un code partagé (il utilise Alamofire).

Une chose à noter: à l'origine, nous avons converti projet de Swift 2.2 pour Swift 2.3, manuellement, puis mis à niveau à la version 3.0.

Quelqu'un aurait-il une idée de ce que pourrait être la cause de cette erreur?

Merci!

67voto

ossmalpha Points 678

J'ai eu le même problème, mais j'ai réussi à le résoudre en:

  1. Nettoyez le projet.
  2. Fermez le projet et quittez Xcode.
  3. Nettoyer les données dérivées.
  4. Ouvrez à nouveau le projet et il est là, tout est agréable et fonctionne.

Je l'ai fait sur Xcode 8 en utilisant Swift 3.

17voto

iAmcR Points 369

Vous pouvez également obtenir de ce problème, si vous avez le scénario de votre conteneur d'application du code Swift 2.3 et vous êtes en train de créer une nouvelle extension dans Xcode 8.

Pour résoudre le scénario ci-dessus...

Remarque: Tout le code doit être dans le même réseau swift (compatible) version à compiler sans échec.

Cela étant dit, il est possible de résoudre ce problème est de coller à la Swift 2.3 puis le réglage de votre Objectif d'Extension de l' Utilisation de l'Héritage Swift Version de Langue de "Oui".

Vous pouvez trouver cette option, alors que Xcode 8 est ouvert comme suit:

  1. Sélectionnez votre application racine du projet dans l'explorateur de Projets (sur la gauche)
  2. Sur le côté droit, sélectionnez votre prorogation en vertu de la cible section
  3. Une fois que l'extension est sélectionné, cliquez sur les Paramètres de construction de l'onglet
  4. Faites défiler vers le bas et de trouver l'Utilisation de l'Héritage Swift Version de Langue et de le définir à Oui à partir de son menu déroulant.
  5. Vous pouvez maintenant construire le projet

Remarque: Vous devrez peut-être corriger le substituée code dans le prolongement des modèles, car ils ont été à l'origine de Swift 3.

7voto

ShakeMan Points 31

Avant de faire quoi que ce soit...

(Si vous pouvez utiliser Xcode 8.0-compatible avec votre projet)

Par défaut, votre projet est défini sur Xcode 3.2-compatible

  • Sélectionnez votre projet d'application dans le Navigateur (sur la gauche)
  • Sélectionnez Document de Projet dans le Panneau d'Utilitaires (sur la côté droit)
  • Changement de Format de Projet pour Xcode 8.0-compatible

Essayez de construire votre projet.

Si cela ne fonctionne pas, essayez les autres solutions proposées.

Remarque:Vous pouvez même revenir à Xcode 3.2 compatible après avoir corrigé l'erreur et cela devrait fonctionner, mais vous "pourrait" avoir d'autres problèmes de génération plus tard.

Recommandation: Avant de déboguer un projet existant. Fermez votre projet et zip une copie de votre fichier de projet si vous n'avez pas créer un dépôt Git lorsque vous avez créé votre projet.

4voto

Clayton Points 45

J'ai fixé ce, par la suppression de l'embedded binaires dans le projet. Pour ce faire:

  1. Ouvrez votre espace de travail/ projet dans Xcode.
  2. Accédez à la réelle fichier de projet (avec le Général, Capacités, etc. ruban).
  3. Accédez à Général > Incorporé les fichiers Binaires, les supprimer en sélectionnant ceux que vous ne voulez pas, puis en cliquant sur le signe moins.

Note 1: Vous ne devriez pas avoir à les supprimer de la "Liés à des Cadres et des Bibliothèques" de la section (ils devraient être automatiquement supprimés lorsque vous les retirez de la "Embedded Binaires").

Note 2: j'ai beaucoup de dépendances et suis à l'aide CocoaPods. Je n'ai rien dans le "Embedded Binaires" et que le "Pods_[Nom_application].cadre" dans le "Liés à des Cadres et des Bibliothèques" section.

2voto

ph1lb4 Points 1014

J'ai eu différentes bibliothèques intégrées via carthage. Cependant, au cours du processus, j'ai remplacé certains d'entre eux par des cocoapods et j'ai oublié de supprimer l'ancien fichier .frameworks de la cible du projet.

Les supprimer a résolu l'erreur de construction.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X