iOS FacebookSDK + Parse SDK + GoogleMaps SDK
iOS FacebookSDK + Parse SDK + GoogleMaps SDK
我搜索了很多,然后我意识到,GoogleMapSDK
需要的 -ObjC
标志与 ParseSDK
和 FacebookSDK
不能很好地配合使用。所以我阅读了所有 Whosebug 的答案并尝试解决我的问题。问题还没有解决。
我执行的步骤:
- 问题 1:解析不适用于 -ObjC
解决方案 1:要使 Parse 与 -ObjC
一起工作,请导入 FacebookSDK。 完成
问题 2: Parse 和 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)
[this answer on 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
- 谷歌地图 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。
据推测,一旦新的 Facebook SDK 与 Bolts 1.1.4 一起可用,这个问题就会得到解决。
所以 Bolts Framework 1.1.3 可以与 Parse 1.6.3 一起使用。但是在任何地方都找不到 Parse 1.6.3。所以我做了很多挖掘并进入 cocoa pods 的 json 文件并获得直接 link 下载 Parse 1.6.3
或任何版本这件事的框架。 github.com/CocoaPods/Specs of cocoa pods 是要查看的存储库。
对于其他专门寻找 Parse 1.6.3 的人。 This is the link 只需在 json 中找到 source
link 并将其复制到浏览器中即可。
我用最后的结论来结束这个问题:
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 更新为 bolts 1.1.4
我搜索了很多,然后我意识到,GoogleMapSDK
需要的 -ObjC
标志与 ParseSDK
和 FacebookSDK
不能很好地配合使用。所以我阅读了所有 Whosebug 的答案并尝试解决我的问题。问题还没有解决。
我执行的步骤:
- 问题 1:解析不适用于 -ObjC
解决方案 1:要使 Parse 与
-ObjC
一起工作,请导入 FacebookSDK。 完成问题 2: Parse 和 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)
[this answer on 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 - 谷歌地图 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。
据推测,一旦新的 Facebook SDK 与 Bolts 1.1.4 一起可用,这个问题就会得到解决。
所以 Bolts Framework 1.1.3 可以与 Parse 1.6.3 一起使用。但是在任何地方都找不到 Parse 1.6.3。所以我做了很多挖掘并进入 cocoa pods 的 json 文件并获得直接 link 下载 Parse 1.6.3
或任何版本这件事的框架。 github.com/CocoaPods/Specs of cocoa pods 是要查看的存储库。
对于其他专门寻找 Parse 1.6.3 的人。 This is the link 只需在 json 中找到 source
link 并将其复制到浏览器中即可。
我用最后的结论来结束这个问题:
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 更新为 bolts 1.1.4