Xcode 7 上 Gmail API 的快速启动说明不起作用

Posted

技术标签:

【中文标题】Xcode 7 上 Gmail API 的快速启动说明不起作用【英文标题】:Quick start instructions for Gmail API on Xcode 7 do not work 【发布时间】:2016-01-18 15:03:55 【问题描述】:

跟进Gmail API ios in Xcode 7, Swift 2,我按照指示进行操作,但随后遇到了此处列出的问题:https://groups.google.com/forum/#!topic/google-api-objectivec-client/Eq2yW8KdjRU。他们指出了快速入门指令的一些问题,我(就像他们所做的那样)尽我们所能通过它们。最后,剩下的问题是链接,它看起来像:

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_GTLObject", referenced from:
  _OBJC_CLASS_$_GTLGmailDraft in GTLGmail_Sources.o
  _OBJC_CLASS_$_GTLGmailHistoryLabelAdded in GTLGmail_Sources.o
  _OBJC_CLASS_$_GTLGmailHistoryLabelRemoved in GTLGmail_Sources.o
  _OBJC_CLASS_$_GTLGmailMessage in GTLGmail_Sources.o
  _OBJC_CLASS_$_GTLGmailHistoryMessageAdded in GTLGmail_Sources.o
  _OBJC_CLASS_$_GTLGmailHistoryMessageDeleted in GTLGmail_Sources.o
  _OBJC_CLASS_$_GTLGmailHistory in GTLGmail_Sources.o
  ...
"_OBJC_CLASS_$_GTLQuery", referenced from:
  _OBJC_CLASS_$_GTLQueryGmail in GTLGmail_Sources.o
 (maybe you meant: _OBJC_CLASS_$_GTLQueryGmail)
"_OBJC_CLASS_$_GTLService", referenced from:
  _OBJC_CLASS_$_GTLServiceGmail in GTLGmail_Sources.o
 (maybe you meant: _OBJC_CLASS_$_GTLServiceGmail)
"_OBJC_CLASS_$_GTMOAuth2ViewControllerTouch", referenced from:
  type metadata accessor for __ObjC.GTMOAuth2ViewControllerTouch in ViewController.o
"_OBJC_METACLASS_$_GTLObject", referenced from:
  _OBJC_METACLASS_$_GTLGmailDraft in GTLGmail_Sources.o
  _OBJC_METACLASS_$_GTLGmailHistory in GTLGmail_Sources.o
  _OBJC_METACLASS_$_GTLGmailHistoryLabelAdded in GTLGmail_Sources.o
  _OBJC_METACLASS_$_GTLGmailHistoryLabelRemoved in GTLGmail_Sources.o
  _OBJC_METACLASS_$_GTLGmailHistoryMessageAdded in GTLGmail_Sources.o
  _OBJC_METACLASS_$_GTLGmailHistoryMessageDeleted in GTLGmail_Sources.o
  _OBJC_METACLASS_$_GTLGmailLabel in GTLGmail_Sources.o
  ...

在上面我第一次引用的 SO 线程中,建议使用新的 Gmail SDK 来纠正这些问题。两天前我重新拉了所有东西,但仍然有链接错误。

所以我不确定如何安装提到的新版本的 SDK ...有人可以指出我正在更新哪个 SDK 以及如何做吗?谢谢!

【问题讨论】:

来自***.com/questions/28033635/… - 我看到 i386 构建仅适用于模拟器。如果我调整构建目标,它可能会在真实手机上运行,​​我需要对其进行测试。 【参考方案1】:

好的,我想通了。首先,您需要克服https://groups.google.com/forum/#!topic/google-api-objectivec-client/Eq2yW8KdjRU 所述的“故障”。 这包括注意项目现在添加了“Core”一词,修复了 2.0 操作的 swift 文件,忽略了步骤 3e 和 f。此外,确保每个项目都选择了 iOS 作为架构。因为我认为 i386 构建是针对模拟器的,为了明确说明为什么要构建你可以在这里看到(iOS 暗示 iphoneos 和 iphonesimulator 即使 i386 没有显示在 有效架构列表):

然后,您将在我上面提到的地方出现链接器问题。在网上摸索并查看丢失的内容后,问题是构建需要几个额外的文件:

我用红色破折号标记了除快速入门中指示的内容之外必须添加的内容。另请注意,其中一些必须在没有 ARC 的情况下编译,这在红色圆圈中显示。

接下来,将其包含在 我的 项目中。

【讨论】:

以上是关于Xcode 7 上 Gmail API 的快速启动说明不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 13 快速帮助窗口未在自定义对象上启动

XCode 4.2.1 在启动时在 Lion 10.7.2 上崩溃

私有 api CTGetSignalStrength() 不适用于 Xcode 7.3

私有 api CTGetSignalStrength() 不适用于 Xcode 7.3

Xcode 7.3 ad hoc 发行版在某些 iOS 设备上启动,而不是在其他设备上

使用 Java 的 API 将已删除的消息插入到 gmail