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:
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.
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
J'ai résolu le problème comme ceci:
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.
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!
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
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;