如何在项目中包含GData?

How to include GData in project?

几个小时以来,我一直在尝试将 GData 框架包含在我的项目中,但我完全迷失了方向。我正在尝试按照 gdata-objectivec-client 页面 (https://code.google.com/p/gdata-objectivec-client/) 上的说明进行操作,但它们已经过时了。

如果我尝试 link 静态库(使用本网站的说明,在安装指南中引用 -> https://hoishing.wordpress.com/2011/08/23/gdata-objective-c-client-setup-in-xcode-4/)最后我得到这些错误:

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_GDataServiceGoogleSpreadsheet", referenced from:
  objc-class-ref in ViewController.o
  "_kGDataGoogleSpreadsheetsPrivateFullFeed", referenced from:
  -[ViewController fetchFeedOfSpreadsheets] in ViewController.o
ld: symbol(s) not found for architecture arm64

我发现它们可能是由于 gdata-objectivec-client 不兼容 ARC 造成的。如果有 gdata 的文件,可以通过在 Build Phases -> Compile Sources 中添加“-fno-objc-arc”标志来修复它,但由于我是交叉引用项目,所以不存在。

还有一种方法是直接编译源文件,但是提供的方法已经很陈旧了。第一步是将 "Source" 组从 GData 项目拖到我的项目中,这在 Xcode 中很长时间以来都是不可能的。据我所知,今天我必须在 Finder 中打开项目文件并将它们拖到我的项目中,但那样我将导入整个项目,而不仅仅是源文件。另外,如果我这样做的话,Project Explorer 中的文件夹是蓝色的,我无法导入任何 GData 的头文件。

我不知道接下来我该怎么做才能使 Xcode 6 和 iOS8 正常工作,我们将不胜感激。

好吧,到今天看来,这可不是一件简单的事情。我对 Google 文档中提供的教程完全没有运气(无论是静态库还是从源代码编译)。我还通过制作 Podfile 并请求 pod 'GData' 来尝试 cocoa pods,但它也已损坏。其中一个依赖项被加倍并产生了很多 "duplicate symbol" 错误。但事实证明,它可以很容易地修复,我终于能够将 GData Objective-C 客户端与 iOS8 和 Xcode 6.3.

一起使用

这是你必须做的(我假设你已经在你的机器上安装了 cocoa pods):

pod 初始化

在控制台中,导航到项目的根目录并键入 'pod init'

将此插入 podfile:

pod 'GData', :podspec => 'GData.podspec.json'

创建自定义 podspec 文件,从官方 podspec.

中移除重复依赖项

我们必须从依赖项中删除麻烦的 "GTMHTTPFetcher"。在项目的根目录中创建一个名为 GData.podspec.json 的文件。用内容填充它,使其看起来像这样:

{
  "name": "GData",
  "version": "1.12.0",
  "license": {
    "type": "Apache License, Version 2.0",
    "file": "COPYING.txt"
  },
  "summary": "The Google data APIs provide a simple protocol for reading and writing data on the web. Many Google services provide a Google data API.",
  "homepage": "https://code.google.com/p/gdata-objectivec-client",
  "authors": {
    "The Google Data APIs team": "https://code.google.com/p/gdata-objectivec-client"
  },
  "source": {
    "svn": "http://gdata-objectivec-client.googlecode.com/svn/trunk"
  },
  "dependencies": {
    "gtm-oauth2": [

    ]
  },
  "requires_arc": false,
  "subspecs": [
    {
      "name": "Core",
      "source_files": [
        "Source/ACL/*.{h,m}",
        "Source/BaseClasses/*.{h,m}",
        "Source/Elements/*.{h,m}",
        "Source/Geo/*.{h,m}",
        "Source/Introspection/*.{h,m}",
        "Source/Media/*.{h,m}",
        "Source/Networking/*.{h,m}",
        "Source/XMLSupport/*.{h,m}",
        "Source/*.{h,m}",
        "Source/Clients/**/*.{h,m}"
      ],
      "libraries": "xml2",
      "xcconfig": {
        "HEADER_SEARCH_PATHS": "\"$(SDKROOT)/usr/include/libxml2\""
      }
    },
    {
      "name": "XMLNode",
      "source_files": "Source/XMLSupport/*.{h,m}",
      "libraries": "xml2",
      "xcconfig": {
        "HEADER_SEARCH_PATHS": "\"$(SDKROOT)/usr/include/libxml2\""
      }
    }
  ]
}

在 GData.podspec.json

中更新 "version"

访问 https://cocoapods.org/pods/GData 并在页面顶部查找最新版本的 GData。将 GData.podspec.json 中的 "version" 替换为该版本号。

执行'pod install'

大功告成!现在 GData 库将最终编译,您可以开始使用它了。这个修复可能不是很大,但我确实花了几个小时才找出问题所在以及如何消除它。我希望它对其他人有用。

您必须使用 - 安装 GDATA pods pod 'GData', '1.12.0'

步骤

  1. 打开终端并转到您的项目目录
  2. 如果您已经有 pod 文件,则编辑并添加 pod 'GData','1.12.0',否则制作新的 pod 文件并添加相同的文件。(https://guides.cocoapods.org/using/using-cocoapods.html)
  3. 现在退出 pod 文件并给出命令安装 pod。

您会看到 GData 已安装在您的应用中。

注意:安装后您必须从依赖项中删除麻烦的"GTMHTTPFetcher"。