following pods are integrated into targets that do not have the same Swift version

懵懂的女人 提交于 2019-12-01 15:46:20

I just solved a recent issue when I updated my swift3 project to swift4 one with Xcode9, the problem said: [!] 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

My solution was: With my main target MyApp with the swift version at 4.0, I also updated my UnitTest version to 4.0 into Build Settings --> Swift Language Version

I have solved the problem like this:

  1. I had two targets: the main project and the tests targets.
  2. My main project's target had the 'Use legacy Swift Language version' (in Build Settings) to 'Unspecified (3.0)'.
  3. I set the 'Use legacy Swift Language version' to 'No' and it worked fine.

This problem gets worse with Xcode 9 since it supports both 3.2 and 4.0 swift versions, but Cocoa Pods doesn't support this yet:

[!] 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)

Workaround: switch target1 to swift 3.2 temporarily, install cocoa pods, then switch it back to swift 4.0.

When I opened my xcodeproj file it displayed 3.2, but when I ran git diff, I noticed that the project.pbxproj had everything as Swift 3.0.

Manually updating the SWIFT_VERSION variables to 3.2 with a text editor solved the discrepancy.

I recommend this as a last resort only!

For CocoaPods App v.1.1.1 this problem was solved by setting Use legacy Swift Language Version to Unspecified in Build Settings section for all targets.

Probably it's an app bug - all targets had the same settings but CocoaPods app complaining only about one of them.

UPD: to be able to compile project I had to change it back from Unspecified to No

I had the problem with one target with a difference from 3.0 to 3.0.1

I solved it by manually editing the project file (project.pbxproj) and change 3.0; with 3.0.1;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!