31

不知道是什么问题.. 发现 armv7 的 91 个符号重复

我在一个针对 iOS 7.1 的 Swift 项目中。

这两个框架都是最新版本

尝试清理项目并删除派生数据。但无济于事。

duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._URL in:
    /Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
    /Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._appStoreId in:
    /Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
    /Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
duplicate symbol _OBJC_IVAR_$_BFAppLinkTarget._appName in:
    /Users/rynecheow/Development/THPopQuiz/Frameworks/FacebookSDK.framework/FacebookSDK(BFAppLinkTarget.o)
    /Users/rynecheow/Development/THPopQuiz/Frameworks/Bolts.framework/Bolts(BFAppLinkTarget.o)
4

5 回答 5

51

我对 91 个重复项有同样的问题。对我有用的只是删除 Bolts.framework,它似乎已经以某种方式包含在 Facebook 新 SDK 中。

希望能帮助到你!

于 2014-09-17T10:11:41.780 回答
17

有同样的问题。

  • 删除 Bolts.framework 不是解决方案,因为我收到了Leo Flaherty提到的错误(在接受的答案中评论)。
  • 使用iOS_DEV提到的解决方案对我来说似乎是一个丑陋的黑客攻击
  • 使用最新的 Parse 和 Facebook SDK 也不是解决方案Simon Bøgh提到),因为我使用的是 Facebook SDK 的 3.x 版本,而最新的是 4.x。Facebook SDK 变更日志提到: iOS v4.0的Facebook SDK 是主要版本升级。 因为我需要赶上最后期限,所以我不能花时间重写我所有的 Facebook 代码,以适应新的 4.x SDK 版本。

我提出的解决方案:

不要将 Bolts.framework 和 FacebookSDK.framework 作为框架添加到您的项目中,而是将它们添加为Pods

pod 'Bolts'
pod 'Facebook-iOS-SDK', '3.23.1'

在这里找到所有可用的 Facebook SDK 版本,以防您需要使用不是最新的版本。
如果您使用的是 Swift,则需要在桥接头中添加以下内容:
#import <FacebookSDK/FacebookSDK.h> #import <Bolts/Bolts.h>

于 2015-04-19T00:02:30.490 回答
1

这对我有用。

1)我删除了解析附带的 Bolts.framework。

2)只添加了解析(选择复制到目标文件夹)和facebookSDK(取消选中复制到目标文件夹)。还检查了构建设置中的框架搜索路径。

3) 添加NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";

在 AppDelegate.m 之前

@interface AppDelegate ()

@end
于 2015-03-20T16:41:00.077 回答
1

我知道答案已经被接受,但现在 Facebook 已经解决了这个问题

如果您在撰写本文时下载了最新的 Parse SDK (1.7.0)Facebook SDK (4.0.0),它应该可以正常工作。两个 SDK 都是在几个小时前更新的。

我已经从 Parse SDK 导入并复制了 Bolts.framework 和 Parse.framework,然后链接到 Facebooks SDK(现在称为 FBSDKCoreKit.framework),它成功构建了项目。

重复问题:Parse 和 facebook sdk -duplicate symbol

于 2015-03-25T23:45:08.867 回答
-1

按照以下步骤操作:applicatonTarget-> Build Phase-> expend Compile sources。

在这里,您需要删除那些导致重复符号错误的文件。然后重新构建。 在此处输入图像描述

于 2014-09-15T04:14:24.763 回答