Cocoa pod安装错误:"目标会覆盖SWIFT_VERSION构建设置"

时间:2016-09-23 18:41:00

标签: swift xcode cocoapods cocoalumberjack cocoalumberjack-swift

我尝试将Cocoalumberjack安装为pod并收到此错误:

  

ProjectName [Release]目标会覆盖SWIFT_VERSION版本   在“Pods / Target Support”中定义的设置   文件/豆荚,项目名/豆荚-ProjectName.release.xcconfig&#39 ;.这个可以   导致CocoaPods安装问题

pod xcconfig文件包含:

SWIFT_VERSION = 3.0

但是我的项目已经使用了swift 3.所以我不明白为什么会出现这种不匹配。

  

xcrun swift -version

     

Apple Swift 3.0版(swiftlang-800.0.46.2   铛-800.0.38)

但是我无法在Xcode的构建设置中看到SWIFT_VERSION,也不能在swift中输入,因为Xcode的构建设置中的搜索词可以在任何地方看到任何看起来像是swift版本号

此外,pod安装继续说:"使用$(inherited)标志"解决问题。 但是我的Xcode构建设置其他链接器标志已经有这个$(继承)标志,那么为什么不能解决这个问题?

(Xcode 8)

3 个答案:

答案 0 :(得分:14)

这有点不直观,但你要做的是:

1)搜索" SWIFT_VERSION"在您的项目设置

2)你会看到一个条目"使用Legacy Swift语言版本"

  • 如果您已选择任何值,则会以BOLD
  • 显示

3)选择条目(不是值)并按"删除",粗体应该消失。

4)重复相同的步骤,但现在重复目标(带有应用程序图标的目标)

5)关闭XCode

6)运行" pod install"再次

7)打开你的项目,并清理它(Shift + Command + K)

现在它应该正常工作。

注:

专门针对" Cocoalumberjack"确保你的pod正在安装3.0+版本,如果它没有运行" sudo pod update"因为之前的版本不能使用Swift 3。

编辑:

我非常确定cocoapods目前处理这个问题有点儿麻烦,因为我有时会经历它的工作,而其他人则没有。但是,请记住,您可以设置" SWIFT_VERSION"直接在每个框架上标记:

1)选择Pods项目(在项目中)。

2)选择您要设置的目标并查找" SWIFT_VERSION"专门针对该目标进行标记。

3)清洁并重建。

答案 1 :(得分:1)

您需要从目标中删除任何被覆盖的“使用Legacy Swift语言版本”构建设置。

答案 2 :(得分:0)

由于无法删除它,因此不太有用。

您要么继承该值,要么指定一个值,并且由于在xcode上构建UI的方式,在分配后无法返回$(继承)值(在某些选项上,您有“自定义“可以添加此值的值,但不能添加到各种值上。”

所以这是一个没有真正解决方案的死胡同。