更新到 8.0 版本后 Xcode 链接错误

Posted

技术标签:

【中文标题】更新到 8.0 版本后 Xcode 链接错误【英文标题】:Xcode linking error after updating to 8.0 version 【发布时间】:2016-09-14 21:19:18 【问题描述】:

我的项目没有编译错误: linker command failed with exit code 1 (use -v to see invocation) and description

ld: .../Xcode/DerivedData/Acoustic-ejrjwtwpmnimpdaazezbknffdbim/Build/Products/Debug-iphonesimulator/Result.framework/Result 使用比以前的文件 (2.0) 架构 x86_64 更新的 Swift 语言 (3.0) 版本编译 screenshot

我认为问题出在 ReactiveCocoa 框架上。它作为子模块添加到我的项目中。我只使用Objective-C,无法理解如何解决这个问题。

【问题讨论】:

更改您的 info.plist Bulid 设置 Swift 编译器版本以使用旧版 Swift 2.x(只需将其设置为 YES) @LeoDabus 你能解释一下吗,请问我需要在 info.plist 中添加什么?或者我必须改变的地方,我不明白。谢谢 dropbox.com/s/grwmwmd9yicoz46/Screen.png?dl=1 【参考方案1】:

您需要将 CocoaPods 更新到支持 XCode 8 的更新版本(CocoaPods 1.1.0 或更新版本):

sudo gem install cocoapods

然后进行 pod 更新以修复未链接的依赖项:

pod update

删除项目的 DerivedData 文件夹并重新构建,链接错误应该消失了。

【讨论】:

这对我不起作用。我做了这些更改:项目 -> 目标 -> 使用旧版 Swift 语言版本 -> 是【参考方案2】:

“您需要在 CocoaPod 目标上显式设置 Use Legacy Swift Language Version 标志。这可以通过单击 Pods 项目、单击 RealmSwift 目标、转到“构建设置”选项卡并更改标记为是。”

要了解更多,go here

【讨论】:

【参考方案3】:

我遇到了同样的问题,但它与另一个与 Realm 无关的框架有关。

项目 -> 目标 -> 使用旧版 Swift 语言版本 ->

【讨论】:

【参考方案4】:

我总是建议使用提供的向导升级您的项目。如果没有出现,您可以从菜单 Edit > Convert > To Current Swift Syntax 手动转换代码。也许这会有所帮助。

否则苹果在这里提供了一个很好的迁移指南:Migrating to Swift 2.3 or Swift 3 from Swift 2.2 也许这会有所帮助。

这个问题已经在这里问过了:cannot build project with xcode 8 beta 6

【讨论】:

以上是关于更新到 8.0 版本后 Xcode 链接错误的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8.0 更新后架构 arm64 的重复符号

Xamarin iOS构建错误-本地链接失败(仅链接框架SDK)

Xcode 7 警告!是为比被链接 (5.1) 更新的 iOS 版本 (5.1.1) 构建的

Xcode Beta 6“没有更多上下文的表达式类型不明确”导航链接

Xcode Beta 6“没有更多上下文的表达式类型不明确”导航链接

SDWebImage 库在 swift 3 Xcode 8.0 中出现错误