gpt4 book ai didi

objective-c - 将 Google Objective-C API 'GTL' 添加到 iPhone 项目

转载 作者:太空狗 更新时间:2023-10-30 03:22:40 25 4
gpt4 key购买 nike

如何将 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'

我该如何解决这个问题?

enter image description here

最佳答案

我今天大部分时间都在为这个确切的问题而苦苦挣扎,我发现它非常令人沮丧。我终于弄明白了,所以这里有一个简单的分步指南,介绍如何使用 XCode5、使用 ARC 将 Google API 添加到 iOS7 项目,而无需创建工作区或任何其他内容。

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

  1. 检查代码。为此,您只需从您的终端。我将此代码称为“Google 的代码”
  2. 转到项目的构建阶段。展开“Link Binary With Libraries”并添加 Security.frameworkSystemConfiguration.framework。这两个是 Google 代码所必需的。
  3. 转到项目的build设置。使用那里的搜索框,查找 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.mGTLCommon_Networking.m 拖放到您的项目中。
  7. 现在,您需要为要使用的服务导入文件。就我而言,我需要使用 Google 云端硬盘,所以我会添加这些。在 finder 中,转到 Google 的 /Source/Services/Drive/Generated 目录。将 GTLDrive.hGTLDrive_Sources.m 拖放到您的项目中。如果您想使用其他服务,请转到它们的目录并导入相应的 .h 和 .m 文件。
  8. 出于某种原因,Google 的代码不使用 ARC,因此如果您现在尝试构建,将会遇到 ARC 编译错误。因此我们需要禁用 ARC 仅用于 Google 的代码。为此,请返回项目的构建阶段,但这次展开“编译源”。确保 GTLCommon_Sources.mGTLCommon_Networking.m 在那里。选择它们,按回车键并输入 -fno-objc-arc。这将为他们两个禁用 ARC。确保您没有为任何其他文件添加此选项(除非您知道自己在做什么)。
  9. 大功告成!现在,只要您想使用 Google 的 API,只需导入 GTMOAuth2ViewControllerTouch.h 和您的服务 header 即可。就我而言,由于我使用的是 Google 云端硬盘,因此我还将导入 GTLDrive.h

我希望这能帮助并避免一些人拔掉所有的头发。

关于objective-c - 将 Google Objective-C API 'GTL' 添加到 iPhone 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11370752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com