iOS中的链接器错误(架构x86_64的重复符号)

时间:2015-09-11 03:24:23

标签: ios xcode facebook swift linker-errors

我一直收到以下错误:

duplicate symbol _llvm.embedded.module in:
/Users/name/Documents/FacebookSDKs-iOS-20150910/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKApplicationDelegate.o)
/Users/name/Documents/FacebookSDKs-iOS-20150910/FBSDKCoreKit.framework/FBSDKCoreKit(FBSDKServerConfiguration.o)
ld: 102 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试删除FBSDK并重新安装,但这没有用。我还怀疑我将框架桥接到Swift这一事实可能是个问题。我的桥接头包含以下内容:

#ifndef EggCrush_Bridge_h
#define EggCrush_Bridge_h

#import <FBSDKCoreKit/FBSDKCoreKit.h>

#endif

我的AppDelegate.swift文件导入FBSDKCoreKit 没有其他链接器标志 我正在运行Xcode 6.3.2并为iOS 8.3构建项目

如何清除此错误?

4 个答案:

答案 0 :(得分:25)

This thread解释说您必须在Xcode 7中编译Facebook 4.6.0 SDK才能解决问题。在Xcode 7中编译后,它对我有用。

在Facebook iOS SDK 4.6.0中,添加了App Thinning(Bitcode)支持,因此无法在低于Xcode 7.0的Xcode版本中进行编译。

答案 1 :(得分:2)

当我有一个重复的符号错误时,我在文本编辑器中打开了我的project.xcodeproj XML文件并搜索了重复的符号。您很可能会发现FacebookSDK在多行中显示相同的&#34; id&#34;属性。确保备份当前项目,并尝试在此文件中手动删除重复项(具有相同ID的项)。保存文件,编译并查看项目是否运行。

您可能想尝试删除一个重复的行,并查看重复的数量(显然您有102 !!)是否先下降。

答案 2 :(得分:2)

  1. 如果您使用 FacebookSDKs-iOS-20160115.zip 和您的XCODE版 XCODE 6.4 或更低版本的 XCODE ,那么此类问题创建
  2. FacebookSDKs-iOS-20160115.zip 这适用于 XCODE 7
  3. 您可以使用 https://developers.facebook.com/resources/FacebookSDKs-iOS-20150813.zip
  4. 它的工作正常。

答案 3 :(得分:0)

我面临同样的重复符号问题。我正在使用 Xcode 6.4 但后来我升级到 Xcode 7.0 它对我来说很好。如果您使用的是早期版本,我建议您将 Xcode升级到7.0