2016-09-15 36 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完成。