我进行了大量搜索,并意识到,-ObjC
需要GoogleMapSDK
标记,与ParseSDK
和FacebookSDK
不相符。所以我阅读了所有stackoverflow的答案,并尝试解决我的问题。问题尚未解决。
我执行的步骤:
解决方案1 :使Parse与-ObjC
一起导入FacebookSDK。的 完成
问题2 :Parse和Fb SDK都使用Bolts.framework
,链接器会出现duplicate symbol
错误(其中约有92个)
解决方案2 :删除Bolts.framework,因为FacebookSDK已经预先捆绑了它。
问题3 :删除Bolts.framework后,重复的错误消失了,但是有一个微小的链接器错误,我无法弄清楚。我假设他们已经在新的SDK版本中改变了一些东西。错误如下:
架构x86_64的未定义符号: “_BFTaskMultipleExceptionsException”,引自: ___ 53+ Parse中的[PFObject(私有)deleteAllAsync:withSessionToken:] _ block_invoke214(PFObject.o) ___ 65+ [PFObject(私有)_deepSaveAsync:withCurrentUser:sessionToken:] _ block_invoke311在Parse(PFObject.o)中 ld:找不到架构x86_64的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
[回答SO] [1]的评论中提出了同样的问题,没有任何回复或建设性的回答。
P.S。有一件事我注意到FacebookSDK与Bolts版本1.1.3
捆绑在一起
和Parse的zip文件中有一个版本1.1.4
。这会导致问题吗?
P.P.S.我在今天的日期(2015年3月19日)使用SDK的最新版本
他们是: - 解析SDK:1.6.4 - GoogleMaps SDK:1.9.2
答案 0 :(得分:2)
当Google Maps SDK for iOS问世时,我尝试了一些方法来解决一些链接器错误:
Google Maps SDK for iOS trying to run on iOS 4.3
我找到了解决缺失符号的一个黑客,只是在我的代码中重新定义了丢失的符号。
BFTaskMultipleExceptionsException
字符串定义为here,如下所示:
NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";
所以也许只是尝试将这一行放入代码中?
从github的历史来看,它似乎刚刚在19天前添加到Bolts。螺栓版本1.1.4在14天前发布(1.1.3从去年10月开始)。所以它可能是由你注意到的螺栓版本不匹配引起的。
另一种选择可能是在Bolts 1.1.4发布之前获得较旧版本的Parse。
据推测,一旦新的Facebook SDK可用于螺栓1.1.4,这将得到解决。
答案 1 :(得分:1)
所以Bolts Framework 1.1.3适用于Parse 1.6.3。但Parse 1.6.3在任何地方都找不到。所以我做了很多挖掘并进入了可可豆荚的json文件,并获得了下载Parse 1.6.3
或任何版本的任何框架的直接链接。可可豆荚github.com/CocoaPods/Specs是要查看的储存库。
对于其他人,谁专门寻找Parse 1.6.3。 This is the link只需找到json中的source
链接,然后将其复制到浏览器中即可。
我将以最后的结论结束这个问题:
Parse 1.6.3和FacebookSDK 3.93取决于螺栓1.1.3
Parse 1.6.4用螺栓1.1.4更新,但截至此日期,facebook sdk不是。因此,我们必须使用Parse 1.6.3直到facebook sdk用螺栓1.1.4更新