18

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

ProjectName [Release]目标覆盖SWIFT_VERSION在 `Pods/Target Support Files/Pods-ProjectName/Pods-ProjectName.release.xcconfig' 中定义的构建设置。这可能会导致 CocoaPods 安装出现问题

pod xcconfig 文件包含以下内容:

SWIFT_VERSION = 3.0

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

xcrun 快速版本

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

但是,我在 Xcode 的构建设置中的任何地方都看不到 SWIFT_VERSION,如果我在 Xcode 的构建设置中输入 swift 作为搜索词,我也无法在任何地方看到任何看起来像 swift 版本号的东西

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

(Xcode 8)

4

3 回答 3

14

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

1) 在您的项目设置中搜索“SWIFT_VERSION”

2)你会看到一个条目说“使用旧版 Swift 语言版本”

  • 如果您已经选择了任何值,它将以粗体显示

3)选择条目(不是值)并按“DELETE”,粗体应消失。

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) 清理和重建。

于 2016-10-31T02:18:06.497 回答
1

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

于 2016-10-16T06:47:55.930 回答
0

这并不完全有帮助,因为没有办法将其删除。

您要么继承该值,要么分配一个值,并且由于 UI 是在 xcode 上构建的方式,在分配后无法返回 $(inherited) 值(在某些选项上,您有一个“自定义”值您可以在其中添加它,但不能在所有类型的值上添加)。

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

于 2016-10-22T14:42:37.853 回答