问题描述
我有一个应用程序,同时安装了Parse和Facebook框架。通过将文件拖动到项目的框架文件夹并选择需要复制来安装解析,而通过拖动而不是选择复制选项来安装Facebook SDK。两者都显示在链接二进制列表下。这个问题似乎是两个SDK都包含螺栓。我尝试使用Facebook,产生以下Link-O错误: 架构x86_64的未定义符号:
_BFTaskMultipleExceptionsException,引用自:
___ 53+ Parse(PFObject.o)中的PFObject(Private)deleteAllAsync:withSessionToken:] _ block_invoke214
___ 65+ [PFObject(Private)_deepSaveAsync:withCurrentUser:sessionToken:] _ block_invoke311 in Parse (PFObject.o)
ld:未找到架构的符号x86_64
clang:错误:链接器命令失败,退出代码1(使用-v查看调用)
我删除了Facebook的链接,并尝试拖动解析器,但错误仍然存在。我也收到了警告:
ld:warning:忽略文件/Users/milesper/Documents/FacebookSDK/Bolts.framework/Bolts ,文件/Users/milesper/Documents/FacebookSDK/Bolts.framework/Bolts(2片)中缺少必需的架构x86_64
$ b $即使我已经从Facebook SDK删除了该文件。
我应该如何清理项目并链接到Parse版本的Bolts?还有什么我应该做的吗?
我找到了。问题是在库搜索路径标志中引用了旧文件(现已被删除)。感谢给我的想法。我所要做的只是删除旧的路径,现在再次工作。
编辑:在某些情况下,搜索路径的顺序也很重要(见下文)。
I have an app with both the Parse and Facebook frameworks installed. Parse was installed by dragging the files to the "Frameworks" folder of the project and selecting "copy if needed", while the Facebook SDK was installed by dragging and not selecting the copy option. Both appear under the Linked Binaries list. The problem appears to be that Bolts is included in both SDKs. I tried just using the Facebook one, producing the following Link-O errors:
Undefined symbols for architecture x86_64:
"_BFTaskMultipleExceptionsException", referenced from:
___53+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o)
___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I deleted the link to the Facebook one and tried dragging the Parse one, but the error persisted. I also got the warning that
ld: warning: ignoring file /Users/milesper/Documents/FacebookSDK/Bolts.framework/Bolts, missing required architecture x86_64 in file /Users/milesper/Documents/FacebookSDK/Bolts.framework/Bolts (2 slices)
even though I had deleted the file from the Facebook SDK.
How should I clean up the project and link to the Parse version of Bolts? Is there something else i should be doing?
Well I found it. The problem was that old files (which were now deleted) were being referenced in the "Library Search Paths Flag". Thanks to this post for giving me the idea. All I had to do was delete the old paths and it now works again.
EDIT: It appears that for some situations the order of the search paths matters as well (see below).
这篇关于解析和Facebook SDK“螺栓”框架错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!