如何在项目中包含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'
步骤
- 打开终端并转到您的项目目录
- 如果您已经有 pod 文件,则编辑并添加 pod 'GData','1.12.0',否则制作新的 pod 文件并添加相同的文件。(https://guides.cocoapods.org/using/using-cocoapods.html)
- 现在退出 pod 文件并给出命令安装 pod。
您会看到 GData 已安装在您的应用中。
注意:安装后您必须从依赖项中删除麻烦的"GTMHTTPFetcher"。
几个小时以来,我一直在尝试将 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'
步骤
- 打开终端并转到您的项目目录
- 如果您已经有 pod 文件,则编辑并添加 pod 'GData','1.12.0',否则制作新的 pod 文件并添加相同的文件。(https://guides.cocoapods.org/using/using-cocoapods.html)
- 现在退出 pod 文件并给出命令安装 pod。
您会看到 GData 已安装在您的应用中。
注意:安装后您必须从依赖项中删除麻烦的"GTMHTTPFetcher"。