【问题标题】:Using Google Maps SDK with Parse.com Project iOS Swift将 Google Maps SDK 与 Parse.com 项目 iOS Swift 结合使用
【发布时间】:2015-11-11 00:59:27
【问题描述】:

我正在使用 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_64errors。 似乎找不到解决方法。

【问题讨论】:

    标签: ios xcode parse-platform google-maps-sdk-ios linker-flags


    【解决方案1】:

    你需要这样做

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

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

    【讨论】:

    • 不幸的是它也不起作用。搜索路径中已经有 $(inherited) 和 $(PROJECT_DIR)。将路径添加到 google 框架时它没有效果,并且当删除继承或 project_dir 时,它没有找到 google 框架并返回另一个错误。似乎已经正确导入了。
    【解决方案2】:

    好的,所以我设法找到了将 GoogleMaps Sdk 和 Parse 与和不带 cocoapods 集成的有效解决方案。然而,GoogleMaps 使用 -ObjC 标志迫使我将 FacebookSDK 集成到等式中。没有它,我找不到办法让它工作

    因此,此配置适用于 xcode 6.3+,并且需要使用旧版本的 Facebook SDK(不使用 cocoapods 时)

    使用 CocoaPods

    1/.按照website(现有项目版本)中的说明添加 Parse SDK

    2/.添加额外的框架(AdSupport、Account 和 Social)以及 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

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

    确保添加 GoogleMaps.framework 以及 GoogleMaps.bundle,您可以通过右键单击“资源”下的 finder 中的 GoogleMaps.framework/show 来找到它。拖放到项目并确保它链接到项目构建设置/复制捆绑资源

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

    在 Build Settings / Other Linker Flags 下添加 -ObjC 标志

    在集成 FacebookSDK 时,我注意到使用最新版本无法正常工作。显然,它已准备好与 xcode 7 一起使用。解决此问题,只需下载旧版本 here

    将 FBSDKCoreKit 和 FBSDKLoginKit 添加到项目中,你应该很高兴。 希望能帮助某人导致这项工作很痛苦......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      • 1970-01-01
      相关资源
      最近更新 更多