2016-09-15 37 views
8

我正在將CocoaPod升級到Swift 3.它編譯並運行得很好,但是pod lib lint因大量編譯器錯誤而失敗,因爲linter試圖將所有東西都編譯爲Swift 2.3。Swift 3 CocoaPod does not pass lint

嘗試在podspec中設置SWIFT_VERSION或在框架的Xcode項目中更改「使用傳統Swift語言版本」不能解決問題。

我該如何讓pod linter使用Swift 3?

+0

同樣的問題在這裏,不能皮棉! – dip

回答

25

事實證明,CocoaPods現在尋找.swift-version文件,從1.1.0.rc.2開始(changelog)。如果文件中包含3.0,掉毛將工作:

echo 3.0 > .swift-version 
+3

似乎並不適合我 –

+0

真棒,幫我解決了這個問題。 –

+2

@KyleGoslan在我將該文件推送到我的回購站之前,我沒有爲我工作: – streem

5

首先,你必須通過

[sudo] gem install cocoapods --pre 

然後保羅·坎特雷爾說,更新的CocoaPods到1.1.0.rc.2,做

echo 3.0 > .swift-version 

在相同的目錄,其中pod規範是

+0

你救了我的一天+1 – Yossi

1

我有這個問題,當開發SDK是德掛在socket.io-Client-Swift上。 類型後

echo 3.0 > .swift-version 

仍然沒有解決我的問題。

但是,我注意到pod lint使用xcodebuild來測試框架是否準備好無錯地發佈。 確保您使用Xcode8來構建莢皮。出於某種原因,我同時安裝Xcode7 & Xcode8和改變了我的xcodebuild聯編路徑xcode7,因此皮棉不會被通過時,我想和迅速3.

一個框架,使用下面的代碼,以確保您的Xcode設置是正確的。

xcode-select -print-path 

如果Xcode中,選擇路徑沒有指向xcode8,你應該使用

xcode-select -switch <path> 

設置Xcode中,選擇路徑xcode8這通常是在你的應用程序。

0

我知道這是對雨燕3編寫的,但你可以爲4.0做到及時更新豆莢一樣的:

echo 4.0 > .swift-version 

這與的CocoaPods的版本1.3.1完成。