iOS FacebookSDK +解析SDK + GoogleMaps SDK

问题描述:

我搜索了很多,我意识到,GoogleMapSDK要求-ObjC标志,与ParseSDKFacebookSDK不能很好地发挥。所以我读了所有的*答案,并试图解决我的问题。问题尚未解决。iOS FacebookSDK +解析SDK + GoogleMaps SDK

步骤我表现:

  • 问题1:解析不-ObjC
  • 解决方案1 ​​工作:要解析工作,-ObjC进口FacebookSDK。 完成

  • 问题2:解析和Fb SDK都使用Bolts.framework和接头给出duplicate symbol错误(它们中的一些92)

  • 溶液2:删除Bolts.framework作为FacebookSDK已经预先捆绑了它。

  • 问题3:删除Bolts.framework后,重复的错误消失了,但有一个小的链接器错误,我不明白。我假设他们已经在新的SDK版本中改变了一些东西。错误如下:

  • 解决方案:??

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)

同样的问题在[这个答案的SO] [1]没有任何回复或建设性的答案的评论中问道。

P.S.有一件事我注意到,FacebookSDK捆绑了Bolts版本1.1.3 ,并且Parse在其zip文件中有1.1.4版本。这是否导致问题? P.P.S.我使用SDK的最新verions为今天的日期(2015年3月19日)

它们是: - 解析SDK:1.6.4 - 谷歌地图SDK:1.9.2

+1

使用CocoaPods为您管理所有这些依赖关系? – 2015-03-19 03:12:42

+0

正如@jshier所说。只需使用CocoaPods。 http://cocoapods.org/我认为你会发现所有这些问题都会消失。祝你好运 – user2877496 2015-03-19 03:51:24

+0

@Logan我尝试使用-force_load,它似乎没有工作。此外,这是一个解决方法,我读它在谷歌地图中打破了一些东西。所以我不想使用它 – leo 2015-03-19 05:29:41

所以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链接并将其复制到浏览器中即可。

我将结束这个问题与压轴的结论:

解析1.6.3和FacebookSDK 3.93取决于螺栓1.1.3

解析1.6.4与1.1.4螺栓更新,但由于这一日期Facebook sdk isnt。因此,我们必须使用Parse 1.6.3,直到facebook sdk用螺栓更新1.1.4

背的时候,谷歌地图SDK iOS版出来的时候,我尝试了一些方法周围的一些链接错误黑客:

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的旧版本。

大概一旦新的Facebook SDK与Bolts 1.1.4一起提供,就可以解决这个问题。

+0

似乎是Facebook正在处理的已知问题,并且Sergey发布了与我的建议相同的解决方法:http://*.com/questions/28898999/parse-api-1-6-4-cannot-build-project – 2015-03-19 03:20:07

+0

所以据我所知,我有3种解决方案可以尝试:(按照pref的顺序): 1.切换到使用螺栓1.1.3而不是1.1.4的解析SDK。2.强制Bolts 1.1.4 on FacebookSDK by cocoapods 3.重新定义@Saxon Druce提到的缺失符号 – leo 2015-03-19 07:24:19

+0

@Saxron你有解析ios sdk版本1.6.3的链接吗? – leo 2015-03-19 07:34:27