将Google Objective-C API"GTL"添加到iPhone项目中

Con*_*lor 11 api sdk xcode objective-c google-drive-api

如何将Google Drive API添加到我的iPhone项目中,我可以使用它吗?

到目前为止,我已将GTL项目拖入我当前的应用程序项目中(因此它嵌套在我的应用程序项目中).然后,在我的应用程序目标的构建阶段,我添加了GTL.framework,然后将GTL.framework添加到我的'Link binary with Libraries'(参见附图).这会引发以下错误:

clang: error: no such file or directory: '/Users/xxx/Library/Developer/Xcode/DerivedData/Golf-hfbczyaemhyzgvbrtgdxqnlzeuaa/Build/Products/Debug-iphonesimulator/GTL/GTL'
Run Code Online (Sandbox Code Playgroud)

我该怎么解决这个问题?

在此输入图像描述

Rob*_*Rob 25

今天大部分时间我都在努力解决这个问题,我觉得非常令人沮丧.我终于弄明白了所以这里是一个简单的分步指南,指导如何使用ARC将XAPode5添加到iOS7项目,而无需创建工作空间或其中任何一个.

RawMean提供的答案效果很好,但它给了我ARC的问题.我也不喜欢你必须添加项目,创建工作区然后删除项目的事实.所以我的解决方案将处理这两个问题.

  1. 看看代码.为此,您可以svn checkout http://google-api-objectivec-client.googlecode.com/svn/trunk/ google-api-objectivec-client-read-only从终端运行.我将此代码称为"Google代码".
  2. 转到项目的构建阶段.展开"链接二进制文件库"并添加Security.frameworkSystemConfiguration.framework.这两个是Google代码所必需的.
  3. 转到项目的构建设置.使用那里的搜索框,查找Other Linker Flags(确保在搜索框的左侧选择"全部").添加-ObjC -all_load.
  4. 现在搜索User headers search path并添加Goggle /Source目录的完整路径.一定要选择recursive.
  5. 使用Finder,转到Google的/Source/OAuth2/Touch目录.拖放GTMOAuth2ViewTouch.xib到您的项目中.
  6. 返回Finder并转到Google的/Source目录.拖放GTLCommon_Sources.m,并GTLCommon_Networking.m为您的项目.
  7. 现在,您需要导入要使用的服务的文件.在我的情况下,我需要使用Google云端硬盘,所以我会添加它们.在Finder中,转到Google的/Source/Services/Drive/Generated目录.拖放GTLDrive.h,并GTLDrive_Sources.m为您的项目.如果要使用其他服务,请转到其目录并导入相应的.h和.m文件.
  8. 出于某种原因,Google的代码不使用ARC,因此如果您现在尝试构建,则会出现ARC编译错误.因此,我们只需要为Google代码禁用ARC .为此,请返回项目的Build Phases,但这次展开"Compile Sources".确保GTLCommon_Sources.m并且GTLCommon_Networking.m在那里.选择它们,按enter并键入-fno-objc-arc.这将禁用它们的ARC.确保不为任何其他文件添加此选项(除非您知道自己在做什么).
  9. 你完成了!现在,只要您想使用Google的API,只需导入GTMOAuth2ViewControllerTouch.h和您的服务标头即可.就我而言,由于我使用的是Google云端硬盘,我也会导入GTLDrive.h.

我希望能帮助并拯救一些人不要拔掉头发.

  • 这适用于Swift请参阅我的答案以获取详细信息http://stackoverflow.com/questions/24082606/google-objective-c-api-gtl-with-swift/24114960#24114960 (2认同)
  • 你是绝对的救世主!非常感谢你.在Google的官方文档之后经过2个小时的努力后,这项工作得以实现.再次感谢. (2认同)
  • 还要确保进入"GTLNetworking_Sources"类并将GTMOAuth2ViewControllerTouch.m更改为GTMOAuth2ViewControllerTouch.h (2认同)

Raw*_*ean 14

我也在努力解决这个错误信息.这就是我解决它的方式:

确保您已在GTLSource/Common /下添加了您正在使用的服务的文件夹(例如,为GoogleDrive添加Drive文件夹).

在GTL.xcodeproj(您已经添加到工作区)下找到GTLSource文件夹并将其拖到您的主项目(在您的情况下为Golf).完成!

现在,您可以删除对已添加到工作区的GTL.xcodeproj的引用.

使用这种方法,您甚至不需要添加库(如果已添加它们,请将它们从链接库列表中删除).

Google API文档与Apple的文档完全不同(它并不好).

我还要提一下,我正在为iOS而不是MacOSX构建应用程序,但这也应该适用于OSX.

在此输入图像描述

  • 我再次遇到这个问题而忘记了之前我已经解决了这个问题,登陆这个页面没有意识到我已经发布了这个解决方案:) (6认同)