我尝试将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)
答案 0 :(得分:14)
这有点不直观,但你要做的是:
1)搜索" SWIFT_VERSION"在您的项目设置
2)你会看到一个条目"使用Legacy Swift语言版本"
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的方式,在分配后无法返回$(继承)值(在某些选项上,您有“自定义“可以添加此值的值,但不能添加到各种值上。”
所以这是一个没有真正解决方案的死胡同。