我正在将CocoaPod升级到Swift 3.它编译并运行得很好,但pod lib lint
因许多编译器错误而失败,因为linter尝试将所有内容编译为Swift 2.3。
尝试在podspec中设置SWIFT_VERSION
或在我的框架的Xcode项目中更改“使用Legacy Swift语言版本”并不能解决问题。
如何让pod linter使用Swift 3?
答案 0 :(得分:25)
事实证明,CocoaPods现在查找.swift-version
文件,截至1.1.0.rc.2(changelog)。如果文件包含3.0
,则linting将起作用:
echo 3.0 > .swift-version
答案 1 :(得分:5)
首先,您必须通过
将cocoapods更新为1.1.0.rc.2[sudo] gem install cocoapods --pre
然后正如Paul Cantrell所说,做
echo 3.0 > .swift-version
在pod规范
的同一目录中答案 2 :(得分:1)
开发SDK时我遇到了这个问题,这取决于socket.io-Client-Swift。 输入后
char
仍然没有解决我的问题。
但是,我注意到pod lint使用xcodebuild来测试框架是否准备好发布而没有错误。 确保使用Xcode8构建pod lint。出于某种原因,我安装了Xcode7和amp; Xcode8并将我的xcodebuild路径改为xcode7,因此当我想用swift 3制作一个框架时,lint不会通过。
使用以下代码确保您的xcode设置正确。
echo 3.0 > .swift-version
如果xcode-select路径未指向xcode8,则应使用
xcode-select -print-path
将xcode-select路径设置为xcode8,这通常位于您的应用程序中。
答案 3 :(得分:0)
我知道这是为Swift 3编写的,但你也可以这样做来更新4.0的pod:
echo 4.0 > .swift-version
这是通过Cocoapods的1.3.1版本完成的。