I am updating my project to Swift 3. When updating some of my cocoapods to swift 3, I receive the following message in terminal, after running pod install:
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)
There is a lengthy thread here: https://github.com/CocoaPods/CocoaPods/issues/5864 about the issue, and I tried the proposed solution, but when I run pod install, i still get the same message.
Here is my pod file:
outside the one given link i haven't found much on this issue. Anyone else experienced the same problem? Any solutions? I just installed Xcode 8.1 and Swift 3.0.1 last weekend.
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:
- I had two targets: the main project and the tests targets.
- My main project's target had the 'Use legacy Swift Language version' (in Build Settings) to 'Unspecified (3.0)'.
- 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;
来源:https://stackoverflow.com/questions/40471683/following-pods-are-integrated-into-targets-that-do-not-have-the-same-swift-versi