1

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

如果我尝试链接静态库(使用安装指南中引用的本网站的说明-> 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”标志来修复它,但由于我是交叉引用项目,所以没有。

其他方法是直接编译源文件,但提供的方法非常过时。第一步是将“源”组从 GData 项目拖到我的项目中,这在 Xcode 中很长时间以来是不可能的。据我所知,今天我必须在 Finder 中打开项目文件并将它们拖到我的项目中,但这样我将导入整个项目,而不仅仅是源文件。此外,如果我这样做,项目资源管理器中的文件夹是蓝色的,我无法导入任何 GData 的头文件。

我不知道下一步我应该做什么才能使这项工作与 Xcode 6 和 iOS8 一起工作,任何帮助将不胜感激。

4

2 回答 2

2

好吧,事实证明,到今天为止,这并不是一件简单的事情。我对谷歌文档中提供的教程(无论是静态库还是从源代码编译)完全没有运气。我还通过制作 Podfile 并请求 pod 'GData' 来尝试可可豆荚,这也被破坏了。其中一个依赖项加倍并产生了很多“重复符号”错误。但事实证明它可以很容易地修复,我终于能够在 iOS8 和 Xcode 6.3 中使用 GData Objective-C 客户端。

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

吊舱初始化

在控制台中,导航到项目的根目录并输入“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 中的“版本”

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

执行“吊舱安装”

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

于 2015-04-25T13:10:22.797 回答
1

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

脚步

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

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

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

于 2015-05-26T06:05:38.360 回答