Google 日历 API - 架构 i386 的未定义符号

Google Calendar API - Undefined symbols for architecture i386

我正在尝试集成 Google 日历 API 2 天。我一直在关注 Google's Official Guide 的快速教程。到目前为止,我已经在不使用 Calendar API.

的情况下成功编译了我的工作区

当我尝试使用它时,出现以下链接器错误:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_GTLQueryCalendar", referenced from:
      objc-class-ref in DashboardController.o
  "_OBJC_CLASS_$_GTLServiceCalendar", referenced from:
      objc-class-ref in DashboardController.o
  "_deflate", referenced from:
      l001 in GoogleSignIn(GTMNSData+zlib.o)
  "_deflateEnd", referenced from:
      l001 in GoogleSignIn(GTMNSData+zlib.o)
  "_deflateInit2_", referenced from:
      l001 in GoogleSignIn(GTMNSData+zlib.o)
  "_inflate", referenced from:
      l002 in GoogleSignIn(GTMNSData+zlib.o)
  "_inflateEnd", referenced from:
      l002 in GoogleSignIn(GTMNSData+zlib.o)
  "_inflateInit2_", referenced from:
      l002 in GoogleSignIn(GTMNSData+zlib.o)
  "_kGTLAuthScopeCalendarReadonly", referenced from:
      -[DashboardController createAuthController] in DashboardController.o
  "_kGTLCalendarOrderByStartTime", referenced from:
      -[DashboardController fetchEvents] in DashboardController.o
ld: symbol(s) not found for architecture i386

我已将 libGTLTouchStaticLib.a 添加到我的主项目中。此外,这些是子项目中的体系结构设置。

GTMSessionFetcher

GTL

我尝试使用的简单代码行是:

- (void)fetchEvents {
    GTLQueryCalendar *query = [GTLQueryCalendar queryForEventsListWithCalendarId:@"primary"];
    query.maxResults = 10;
    query.timeMin = [GTLDateTime dateTimeWithDate:[NSDate date]
                                         timeZone:[NSTimeZone localTimeZone]];;
    query.singleEvents = YES;
    query.orderBy = kGTLCalendarOrderByStartTime;

    [self.service executeQuery:query
                      delegate:self
             didFinishSelector:@selector(displayResultWithTicket:finishedWithObject:error:)];
}

终于解决了。我将路径 google-api-objectivec-client/Source/Services/Calendar/Generated/ 中的所有 implementation (.m) files 复制到主项目中。我不需要复制头文件,因为 类 已经被检测到。

此外,我还需要添加 libz.dylib 框架来消除所有错误。 Google 也应该在他们的文档中提到这些步骤。

希望对以后的人有所帮助!