FacebookSDK和Bolts在构建时相互冲突(重复的符号)

时间:2014-09-15 03:45:16

标签: ios facebook-ios-sdk bolts-framework

不确定是什么问题..找到了91个符号为armv7重复

是针对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)

5 个答案:

答案 0 :(得分:50)

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

希望它有所帮助!

答案 1 :(得分:17)

有同样的问题。

  • 删除Bolts.framework不是解决方案,因为我收到了Leo Flaherty提到的错误(在接受的答案中发表评论)。
  • 使用iOS_DEV提到的解决方案对我来说似乎是一个丑陋的黑客
  • 使用最新的Parse和Facebook SDK也不是解决方案(由Simon Bøgh提及),因为我使用的是Facebook SDK版本3.x,最新版本为4。 X。 Facebook SDK Change log提及: Facebook SDK for iOS v4.0是主要版本升级。 由于我需要在截止日期前完成,所以我不能花时间重新编写我的所有Facebook代码,以适应新的4.x SDK版本。

我建议的解决方案:

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

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

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

答案 2 :(得分:1)

这对我有用。

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

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

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

之前在AppDelegate.m中的

@interface AppDelegate ()

@end

答案 3 :(得分:1)

我知道答案已被接受,但现在已由Facebook解决

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

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

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

答案 4 :(得分:-1)

请按以下步骤操作: applicatonTarget-&GT;构建阶段 - &gt;开发编译源代码。

在这里,您需要删除导致重复符号错误的文件。然后重新建立。 enter image description here