我正在尝试将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引起的。它可以通过在Build Phases中添加“-fno-objc-arc”标志来修复 - >编译源代码如果有gdata的文件,但由于我是交叉引用项目,所以没有。
其他方法是直接编译源文件,但提供的方法已经过时了。第一步是将“源”组从GData项目拖到我的项目中,这在Xcode中已经很长时间了。据我所知,今天我必须在Finder中打开项目文件并将它们拖到我的项目中,但这样我导入整个项目,而不仅仅是源文件。另外,如果我这样做,Project Explorer中的文件夹是蓝色的,我无法导入任何GData的头文件。
我没有想法我接下来应该做什么来使用Xcode 6和iOS8,任何帮助都将非常感激。
答案 0 :(得分:2)
好的,事实证明,截至今天,这不是一件简单的事情。我对Google的文档中提供的教程(无论是静态库还是从源代码编译)都绝对没有运气。我还通过制作一个Podfile并请求一个pod'GData'来尝试可可豆荚。其中一个依赖项加倍,并产生许多“重复符号”错误。但事实证明它可以非常容易地修复,我终于可以使用带有iOS8和Xcode 6.3的GData Objective-C客户端。
以下是您必须做的事情(我假设您已在机器上安装了可可豆荚):
在控制台中,导航到项目的根目录并键入“pod init”
pod 'GData', :podspec => 'GData.podspec.json'
我们必须从依赖项中删除麻烦的“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\""
}
}
]
}
访问https://cocoapods.org/pods/GData并在页面顶部查找最新版本的GData。用该版本号替换GData.podspec.json中的“version”。
你已经完成了!现在GData库将最终编译,您可以开始使用它。这个修复可能不是很大,但它确实花了我几个小时来找出问题是什么以及如何消除它。我希望它对其他人有用。
答案 1 :(得分:1)
您必须使用以下方式安装GDATA pod: pod' GData',' 1.12.0'
步骤
您将在应用中看到GData已安装。
注意:安装完成后,您将不得不删除麻烦的" GTMHTTPFetcher"来自依赖。