3

我搜索了很多,我意识到,需要的-ObjC标志GoogleMapSDK不能很好地与ParseSDKand配合使用FacebookSDK。因此,我阅读了所有 stackoverflow 答案并尝试解决我的问题。问题还没有解决。

我执行的步骤:

  • 问题 1:Parse 不适用于 -ObjC
  • 解决方案 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+[PFObject(Private) deleteAllAsync:withSessionToken:]_block_invoke214 in Parse(PFObject.o) ___65+[PFObject(Private) _deepSaveAsync:withCurrentUser:sessionToken:]_block_invoke311 in Parse(PFObject .o) ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

在 [this answer on SO][1] 的评论中提出了同样的问题,没有任何回复或建设性的答案。

PS 我注意到 FacebookSDK 与 Bolts 版本捆绑在一起的一件事1.1.3 ,Parse1.1.4在其 zip 文件中有一个版本。这是造成问题的原因吗??PPS 我正在使用截至今天(2015 年 3 月 19 日)的最新版本的 SDK

它们是: - 解析 SDK:1.6.4 - GoogleMaps SDK:1.9.2

4

2 回答 2

2

当适用于 iOS 的 Google Maps SDK 出现时,我尝试了一些方法来解决一些链接器错误:

Google Maps SDK for iOS 尝试在 iOS 4.3 上运行

我发现解决丢失符号的一个技巧,就是在我的代码中再次重新定义丢失的符号。

BFTaskMultipleExceptionsException字符串在这里定义如下:

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,这将得到修复。

于 2015-03-19T03:01:00.250 回答
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 的其他所有人。这是链接只需source在json中找到链接并将其复制到浏览器中即可。

我以最后的结论结束这个问题:

Parse 1.6.3 和 FacebookSDK 3.93 依赖于 Bolts 1.1.3

Parse 1.6.4 使用 Bolts 1.1.4 进行了更新,但截至目前,facebook sdk 还没有。因此,我们必须使用 Parse 1.6.3 直到 facebook sdk 用螺栓 1.1.4 更新

于 2015-03-19T12:52:38.280 回答