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

Linker Error in iOS (duplicate symbols for architecture x86_64)

我不断收到以下错误:

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

构建一个项目

如何清除这个错误?

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

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

如果没记错的话,你使用的是Facebook 2015年9月10日刚刚发布的sdk,命名为FacebookSDKs-iOS-20150910.zip. Try to use sdk that released at August 13th, 2015 which named as FacebookSDKs-iOS-20150813.zip,如果可以的话向Facebook报告重复问题。谢谢。

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

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

我遇到了相同的重复符号问题。我使用的是 Xcode 6.4 但后来当我升级到 Xcode 7.0 它对我来说工作得很好。如果您使用的是更早的版本,我建议您将 Xcode 升级到 7.0

  1. 如果您使用FacebookSDKs-iOS-20160115.zip并且您的XCODE版本XCODE6.4 或更低版本的 XCODE 则此类问题会产生。
  2. FacebookSDKs-iOS-20160115.zip 这是用于 XCODE 7.
  3. 您可以使用https://developers.facebook.com/resources/FacebookSDKs-iOS-20150813.zip
  4. 它适合你。