web-dev-qa-db-fra.com

les pods suivants sont intégrés dans des cibles ne possédant pas la même version de Swift

Je mets à jour mon projet vers Swift 3. Lors de la mise à jour de certains de mes cocoapodes vers Swift 3, je reçois le message suivant sur le terminal, après avoir exécuté l'installation du pod:

 Analyzing dependencies
[!] The following pods are integrated into targets that do not have the same Swift version:

- AWSCore required by myApp (Swift 3.0.1), myApptests (Swift 3.0)
- AWSS3 required by myApp (Swift 3.0.1), myApptests (Swift 3.0)
- Alamofire required by myApp (Swift 3.0.1), myApptests (Swift 3.0)

Il y a un long fil de discussion ici: https://github.com/CocoaPods/CocoaPods/issues/5864 à propos du problème, et j'ai essayé la solution proposée, mais quand je lance l'installation par pod, je reçois toujours le même message . 

Voici mon fichier pod: 

 enter image description here

en dehors du lien donné, je n'ai pas trouvé grand chose à ce sujet. Quelqu'un d'autre a connu le même problème? Des solutions? Je viens d'installer Xcode 8.1 et Swift 3.0.1 le week-end dernier.

17
joey

Je sais que ce message est ancien, mais je viens de résoudre un problème récent lorsque j'ai mis à jour mon projet Swift3 vers celui de Swift4 avec Xcode9. Le problème était le suivant: [!] The following pods are integrated into targets that do not have the same Swift version:

Appsee required by MyApp (Swift 4.0), MyAppUnitTest (Swift 3.0)... Allpods

Ma solution était: Avec ma cible principale MyApp avec la version Swift à 4.0, j'ai également mis à jour ma version UnitTest vers 4.0 dans Build Settings -> Swift Language Version 

27
DariusV

J'ai résolu le problème comme ceci:

  1. J'avais deux objectifs: le projet principal et les objectifs de test.
  2. La cible de mon projet principal avait pour option "Non spécifié (3.0)" l'utilisation de la version de Swift Language héritée (dans les paramètres de construction).
  3. J'ai réglé le paramètre «Utiliser la version Swift Language héritée» sur «Non» et cela a bien fonctionné.
5
vladiulianbogdan

Ce problème empire avec Xcode 9 car il supporte les versions Swift 3.2 et 4.0, mais Cocoa Pods ne le supporte pas encore:

[!] The following pods are integrated into targets that do not have the same Swift version:
- XCGLogger required by target1 (Swift 4.0), target2 (Swift 3.0)

Solution: basculez temporairement target1 sur Swift 3.2, installez des cabosses de cacao, puis revenez à Swift 4.0.

4
Alexander Vasenin

Lorsque j'ai ouvert mon fichier xcodeproj, il a affiché 3.2, mais lorsque j'ai exécuté git diff, j'ai remarqué que le project.pbxproj avait tout comme Swift 3.0.

La mise à jour manuelle des variables Swift_VERSION vers 3.2 à l'aide d'un éditeur de texte a résolu le problème.

Je recommande ceci en dernier recours seulement!

2
RndmTsk

Pour CocoaPods App v.1.1.1, ce problème a été résolu en définissant Use legacy Swift Language Version sur Unspecified dans la section Build Settings pour toutes les cibles.

C'est probablement un bug d'application - toutes les cibles avaient les mêmes paramètres mais l'application CocoaPods ne se plaint que de l'une d'entre elles.

UPD: pour pouvoir compiler le projet, je devais le remettre de Unspecified à No

1
slxl

J'ai eu le problème avec une cible avec une différence de 3.0 à 3.0.1

Je l'ai résolu en modifiant manuellement le fichier de projet (project.pbxproj) et en changeant 3.0; avec 3.0.1; 

1
Morten Holmgaard