【问题标题】:How to include GData in project?如何在项目中包含 GData?
【发布时间】:2015-06-18 02:37:37
【问题描述】:

我试图在我的项目中包含 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 一起工作,非常感谢任何帮助。

【问题讨论】:

    标签: ios objective-c xcode gdata gdata-objectivec-client


    【解决方案1】:

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

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

    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 中的“版本”

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

    执行'pod install'

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

    【讨论】:

    • pod 'GData', :podspec => 'GData.podspec.json' 当我粘贴这个时,它给我终端错误
    • @va05 你在使用 cocoapods 1.0 吗?如果是,您需要在目标下放置 pod。因此,您需要添加 target '<your_target_name>' doend 并在它们之间添加 pod 'GData', :podspec => 'GData.podspec.json'
    • 1.0.0.beta.6 那是我正在使用的版本。
    • # platform :ios, '8.0' # 如果您使用的是 Swift,请取消注释此行 # use_frameworks!目标 'Bowden' do pod 'JTMaterialSwitch' pod 'SDWebImage' pod 'AFNetworking'、'2.6.1' pod 'SVPullToRefresh' pod 'FBSDKShareKit' pod 'FBSDKLoginKit' pod 'JTMaterialSpinner' pod 'SZTextView' pod 'UIActivityIndi​​cator-for-SDWebImage ' pod 'RMPickerViewController' pod 'RMDateSelectionViewController','~> 2.0.0' pod 'IQKeyboardManager' pod 'SCLAlertView-Objective-C' pod 'RMMapper' pod 'STTwitter' pod 'GData', :podspec => 'GData.podspec .json' 结束
    • @va05 您是否在项目的根目录中创建自定义 podspec.json 文件?因为缺少此文件是导致您粘贴错误的原因。
    【解决方案2】:

    您必须使用 - 吊舱“GData”,“1.12.0”

    步骤

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 2019-11-05
      • 2017-07-17
      • 2014-08-14
      • 2020-07-02
      • 2019-06-25
      相关资源
      最近更新 更多