Swift 3 CocoaPod无法通过lint检查

8
我正在升级一个CocoaPod到Swift 3。它可以编译和运行,但是pod lib lint会因为多个编译器错误而失败,因为linter试图将所有内容编译为Swift 2.3。
尝试在podspec中设置SWIFT_VERSION或更改我的框架Xcode项目中的“使用旧版Swift语言版本”都无法解决这个问题。
我该如何使pod linter使用Swift 3?

这里也遇到了同样的问题,无法进行代码静态检查! - dip
4个回答

26

原来 CocoaPods 在 1.1.0.rc.2 版本中开始寻找 .swift-version 文件(变更日志)。如果该文件包含 3.0,则可进行 linting:

echo 3.0 > .swift-version

太棒了,帮我解决这个问题。 - Vincent Song
2
@KyleGoslan 直到我将那个文件推送到我的仓库,它才对我起作用 :| - streem

5

首先你需要通过以下方式升级CocoaPods至1.1.0.rc.2版本:

[sudo] gem install cocoapods --pre 

那么正如Paul Cantrell所说,执行:
echo 3.0 > .swift-version

在 podspec 文件所在的同一目录下


1
我可以帮您进行翻译。这段内容是关于开发依赖于socket.io-Client-Swift的SDK时遇到的问题。在输入 "

" 后结束了该段落。
echo 3.0 > .swift-version

仍然没有解决我的问题。

然而,我注意到pod lint使用xcodebuild来测试框架是否可以无错误地发布。确保您使用Xcode8构建pod lint。由于某种原因,我安装了Xcode7和Xcode8,并将我的xcodebuild路径更改为xcode7,因此当我想要制作带有Swift 3的框架时,lint不会通过。

使用以下代码确保您的Xcode设置正确。

xcode-select -print-path

如果xcode-select路径没有指向xcode8,则应使用
xcode-select -switch <path>

将xcode-select路径设置为通常位于应用程序中的xcode8。


0

我知道这是针对Swift 3编写的,但您可以执行相同的操作来更新4.0的pods:

echo 4.0 > .swift-version

这是使用Cocoapods 1.3.1版本完成的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接