我正在使用Parse SDK(parse.com)处理项目(xcode 6.3+,swift)来处理数据。 最近,我们决定使用google maps sdk为用户提供使用方向API的指示。由于您可以在没有谷歌地图的情况下使用此API,因此我开始集成它。这是我第一次使用cocoapods,所以我按照说明开始玩。
pod init
创建pod规范文件
这是我的配置来自谷歌入门指南
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'
pod 'GoogleMaps'
pod install
,然后使用.xworkspace
我直接尝试构建项目,它返回34个错误。
错误类型始终相同:Apple Match-O Linker Error
所以我开始关注谷歌因为我在一个空白项目上做了同样的事情,一切都很好。
我开始找到有关使用Parse SDK导致与GoogleMaps需要工作的-ObjC链接器标志冲突的信息。大多数答案提供了两种可能的解决方案:
1。添加Facebook-iOS-SDK框架
尝试使用facebook提供的框架,以及使用cocoapods。不工作我仍然有错误。
2。通过以下
替换-ObjC标志来强制加载GoogleMaps框架-force_load $(PROJECT_DIR)/Pods/GoogleMaps/Frameworks/GoogleMaps.framework
所以现在我完全迷失了解决这个问题的方法。是否有人找到了将GoogleMaps SDK与Parse集成的方法?
更新
我通过注入没有cocoapods的GoogleMaps尝试了不同的方法。为此,我使用了这种方法:GoogleMaps without CocoaPods
似乎正确地整合了自己,但-ObjC标志仍然存在。使用
-force_load $(PROJECT_DIR)/GoogleMaps.framework/GoogleMaps
现在正在响应但导致duplicate symbols for architecture x86_64
错误。
似乎无法找到解决问题的方法。
答案 0 :(得分:0)
你需要这样做
点击你的项目(目标) 单击Build Settings 在Framework搜索路径下(设置框架路径) 以下有关获取框架搜索路径的信息
右键单击您的框架文件夹(例如:GoogleMaps.framework) 选择获取信息 从General->复制路径,并在框架搜索路径中粘贴此路径(路径应包含在单行中) 祝你好运
答案 1 :(得分:0)
好的,所以我设法找到工作解决方案,用于集成GoogleMaps Sdk和Parse,无论是否有cocoapods。但是,GoogleMaps使用-ObjC标志迫使我将FacebookSDK集成到等式中。如果没有它,我找不到让它工作的方法
所以这个配置正在使用xcode 6.3+,它需要使用旧版本的Facebook SDK(不使用cocoapods时)
使用CocoaPods
1 /。按照website(现有项目版本)
中所述添加Parse SDK 2 /。添加额外的框架(AdSupport,帐户和社交)以及libstdc++.6.dylib
3 /。打开根文件夹的终端
4 /。 $ pod init
5 /。打开Podfile并用以下内容替换内容:
use_frameworks!
platform :ios, ‘8.0’
pod 'GoogleMaps'
6 /。 $ pod install
然后$ pod update
7 /。从此link
下载FacebookSDK 8 /。将FBSDKCoreKit
和FBSDKLoginKit
框架添加到您的项目
9 /。建立你的项目。
如果发生错误,您可能需要从项目中删除ParseFacebookUtils.framework
并仅保留ParseFacebookUtilsV4
。
没有CocoaPods
所以这是完全相同的程序,除了使用pods来安装GoogleMaps SDK,您将使用问题中提到的链接手动集成它,或者转到GoogleMaps podspecs并访问源URL以下载最后一个之一。
确保添加GoogleMaps.framework以及您可以找到的GoogleMaps.bundle,右键点击资源下的查找器中的GoogleMaps.framework / show。拖放到项目并确保它链接到项目构建设置/复制包资源
此外,请确保在问题中提供的链接上列出所有必需的框架和库。
在Build Settings / Other Linker Flags
下添加-ObjC
标志
在集成FacebookSDK时,我注意到使用最新版本无效。显然,它已准备好与xcode 7一起使用。请解决此问题,只需下载旧版本here
将FBSDKCoreKit和FBSDKLoginKit添加到项目中,你应该好好去。 希望帮助某人做出这件事是一件痛苦的事情......