构build时FacebookSDK和Bolts彼此冲突(重复的符号)
不知道是什么问题.. 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)
有同样的问题。
- 删除Bolts.framework不是一个解决scheme,因为我得到了Leo Flaherty提到的错误(在接受的答案中评论)。
- 使用iOS_DEV提到的解决scheme似乎对我来说是一个丑陋的黑客 。
- 使用最新的Parse和Facebook SDK也不是一个解决scheme ( SimonBøgh提到),因为我使用的是Facebook SDK的3.x版本,最新版本是4.x。 Facebook SDK更改日志提到: Facebook SDK for iOS v4.0是一个主要的版本升级。 由于我需要遵守最后期限,所以我不能花时间重写所有的Facebook代码,以适应新的4.x SDK版本。
我build议的解决scheme:
将Bolts.framework和FacebookSDK.framework作为框架添加到项目中,而不是将它们添加为Pods :
pod 'Bolts' pod 'Facebook-iOS-SDK', '3.23.1'
在这里find所有可用的Facebook SDK版本,以防你需要使用不是最新的版本。
如果你使用的是Swift,你需要在桥头添加以下内容:
#import <FacebookSDK/FacebookSDK.h> #import <Bolts/Bolts.h>
我有91重复相同的问题。 什么对我来说只是删除Bolts.framework似乎已经包含在Facebook新的SDK中。
希望能帮助到你!
这对我有效。
1)我删除了parsing出来的Bolts.framework。
2)只添加parsing(select复制到目标文件夹)&facebookSDK(取消复制到目标文件夹)。 还在“生成设置”中检查了框架searchpath
3)增加了NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";
在AppDelegate.m之前
@interface AppDelegate () @end
我知道一个答案已经被接受, 但是现在Facebook已经解决了这个问题 。
如果您在撰写本文时下载最新的Parse SDK(1.7.0)和Facebook SDK(4.0.0) ,则应该可以正常工作。 两个SDK都是在几个小时前更新的。
我从Parse SDK中导入并复制了Bolts.framework和Parse.framework,然后链接到Facebooks SDK(现在称为FBSDKCoreKit.framework),并成功构build了该项目。
重复的问题: parsing和Facebook的SDK -重复的符号
遵循以下步骤:applicatonTarget-> Build阶段 – >费用编译源。
在这里,您需要删除导致重复符号错误的文件。 然后再次build立。