我进行了很多搜索,然后才意识到-ObjC所需的GoogleMapSDK标志不能与ParseSDKFacebookSDK配合使用。因此,我阅读了所有stackoverflow答案,并尝试解决了我的问题。该问题尚未解决。

我执行的步骤:

  • 问题1:解析不适用于-ObjC
  • 解决方案1:要使解析与-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.o)中的deleteAllAsync:withSessionToken:] _ block_invoke214
    ___ 65+ [Parse(PFObject.o)中的_block_invoke311_deepSaveAsync:withCurrentUser:sessionToken:] _ block_invoke311
    ld:找不到架构x86_64的符号
    clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

    在[关于这个问题的答案] [1]的评论中提出了同样的问题,而没有任何答复或建设性的答案。

    附言我注意到一件事,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

    最佳答案

    回到iOS版Google Maps SDK推出时,我尝试了几种方法来破解一些链接器错误:

    Google Maps SDK for iOS trying to run on iOS 4.3

    我发现了一种解决丢失符号的技巧,只是在代码中重新定义了丢失符号。
    BFTaskMultipleExceptionsException字符串定义为here,如下所示:

    NSString *const BFTaskMultipleExceptionsException = @"BFMultipleExceptionsException";
    

    因此,也许只是尝试将那一行插入代码中?

    从github的历史来看,这似乎是在19天前刚刚添加到Bolts中的。 Bolts的1.1.4版本在14天前发布(1.1.3是从去年10月开始)。因此,这可能是由于您注意到的Bolts版本不匹配所致。

    另一个选择可能是从Bolts 1.1.4发布之前获取较旧版本的Parse。

    据推测,一旦Bolts 1.1.4提供了新的Facebook SDK,此问题将得到修复。

    10-08 14:57