2016-11-07 62 views
12

我正在將我的項目更新爲Swift 3.將我的一些cocoapods更新爲swift 3時,在運行pod安裝後,我在終端中收到以下消息:以下豆莢已集成到不具有相同Swift版本的目標中

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) 

有一個漫長的線程在這裏:https://github.com/CocoaPods/CocoaPods/issues/5864有關的問題,我想提出的解決方案,但是當我運行莢安裝,我仍然得到了同樣的信息。

這裏是我的POD文件:

enter image description here

給定鏈路的一個外我還沒有發現太多這個問題。其他人遇到同樣的問題?任何解決方案我上個週末剛剛安裝了Xcode 8.1和Swift 3.0.1。

回答

3

我已經解決了這個問題是這樣的:

  1. 我有兩個目標:主體工程和測試目標。
  2. 我的主項目的目標是'使用傳統的Swift語言版本'(在構建設置)'未指定(3.0)'。
  3. 我將'使用傳統的Swift語言版本'設置爲'否',它工作正常。
+0

這個選項在哪裏?我沒有看到它在構建設置(xcode 8.3.3) – Adam

1

有關的CocoaPods應用程序v.1.1.1此問題是由在Build Settings節對所有目標設置Use legacy Swift Language VersionUnspecified解決。

也許這是一個應用程序錯誤 - 所有目標都具有相同的設置,但CocoaPods應用程序只抱怨其中的一個。

UPD:要能夠編譯項目,我不得不改變它UnspecifiedNo

1

我曾與從3.0差一個目標的問題3.0.1

我解決它通過手動編輯項目文件(project.pbxproj)並更改爲3.0;與3.0.1;

11

我知道這個職位是舊的,但我只是解決了最近遇到的問題時,我更新了我的swift3項目swift4一個與Xcode9,這個問題說: [!] 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

我解決辦法是: 隨着我的主要目標MyApp與SWIFT版本爲4.0,我也更新了我的單元測試的版本4.0到Build Settings - >Swift Language Version

+1

非常感謝...解決了我的問題! :) –

2

這個問題得到與Xcode 9更糟,因爲它同時支持3.2和4.0版本迅速,但可可豆莢不支持此尚未:

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

解決方法:開關目標1至3.2迅疾暫時,安裝可可豆莢,然後再切換回迅速4.0。

+0

你有沒有支持這個CocoaPods的來源呢?或者這是基於錯誤描述的假設? –

+0

@GeorgeMarmaridis我不知道我是否理解你的問題,但在這個特定的項目中,我確實有不同的Swift版本的目標,它看起來像可可豆莢不能處理它,即使Xcode做 –

0

當我打開我的xcodeproj文件時,它顯示3.2,但是當我運行git diff時,我注意到project.pbxproj的一切都是Swift 3.0。

用文本編輯器手動更新SWIFT_VERSION變量爲3.2解決了差異。

我推薦這隻作爲最後的手段!

相關問題