将 Google Maps SDK 与 Parse.com 项目 iOS Swift 结合使用

Using Google Maps SDK with Parse.com Project iOS Swift

我正在使用 Parse SDK (parse.com) 处理数据的项目 (xcode 6.3+,swift)。 最近,我们决定使用 google 地图 sdk 为用户提供使用方向 API 的方向。由于您可以在没有 google 地图的情况下使用此 API,因此我开始整合它。这是我第一次接触 cocoapods,所以我按照说明开始玩了。

pod init 创建 pod 规范文件

这是我的配置来自 google 入门指南

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.1'
pod 'GoogleMaps'

pod install,然后使用 .xworkspace

启动项目

我直接尝试构建项目,它 returns 34 个错误。 错误类型始终相同:Apple Match-O Linker Error

所以我开始研究 google 因为我在一个空白项目上做了同样的事情并且一切都运行良好。

我开始查找有关以下事实的信息:使用 Parse SDK 会导致与 GoogleMaps 需要工作的 -ObjC 链接器标志发生冲突。大多数答案都给出了两个可能的解决方案:

1.添加 Facebook-iOS-SDK 框架

使用 facebook 提供的框架以及 cocoapods 进行了尝试。不工作。我仍然有错误。

2。通过用以下内容替换 -ObjC 标志来强制加载 GoogleMaps 框架

-force_load $(PROJECT_DIR)/Pods/GoogleMaps/Frameworks/GoogleMaps.framework

这returns也是一个错误:

所以现在我完全不知道解决这个问题的方法。有没有人找到将 GoogleMaps SDK 与 Parse 集成的方法?

更新

我尝试了一种不同的方法,即在没有 cocoapods 的情况下注入 GoogleMaps。为此,我使用了以下方法:

它似乎正确地整合了自身,但 -ObjC 标志仍然存在。使用

-force_load $(PROJECT_DIR)/GoogleMaps.framework/GoogleMaps

现在正在响应,但导致 duplicate symbols for architecture x86_64 错误。 似乎找不到解决该问题的方法。

你需要这样做

点击您的项目(目标) 单击构建设置 在框架搜索路径下(设置您的框架路径) 以下信息用于获取框架搜索路径

右键单击您的框架文件夹(例如:GoogleMaps.framework) select 获取信息 从 General->where 复制路径并将此路径粘贴到您的框架搜索路径中(路径应包含在单行中) 祝你好运

好的,所以我设法找到了将 GoogleMaps Sdk 和 Parse 与 cocoa 和不与 cocoa 集成的工作解决方案pods。然而,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/。将 FBSDKCoreKitFBSDKLoginKit 框架添加到您的项目

9/。建立你的项目。

如果出现某些错误,您可能需要从项目中删除 ParseFacebookUtils.framework 并仅保留 ParseFacebookUtilsV4

没有 CocoaPods

所以这是完全相同的过程,除了不是使用 pods 安装 GoogleMaps SDK,您将使用问题中提到的 link 手动集成它,或者转到 GoogleMaps podspecs 并访问源 url 下载最后一个。

确保添加 GoogleMaps.framework,以及 GoogleMaps.bundle,您可以通过右键单击 GoogleMaps.framework / 在资源下的查找器中显示来找到它。拖放到项目并确保它 linked 到项目构建设置/复制 Bundle Resources

此外,请确保在问题中提供的 link 中列出了所有必需的框架和库。

在构建设置/其他链接器标志下添加 -ObjC 标志

在集成 FacebookSDK 时,我注意到使用最新版本不起作用。显然,它已准备好与 xcode 7 一起使用。解决这个问题,只需下载旧版本

将 FBSDKCoreKit 和 FBSDKLoginKit 添加到项目中,你应该可以开始了。 希望对某人有所帮助,因为完成这项工作很痛苦...