Google plus SDK在尝试与iPhone应用程序集成时发出链接器错误

Google plus SDK在尝试与iPhone应用程序集成时发出链接器错误,iphone,ios,linker,ios5,Iphone,Ios,Linker,Ios5,有些简单的事情有时就是不起作用;)就像这个!我正试图按照以下说明将Google+SDK集成到iPhone应用程序中: 我做了每一步。但当我构建应用程序时,它会抱怨以下错误: Undefined symbols for architecture armv7: "_OBJC_CLASS_$_GTMOAuth2Keychain", referenced from: objc-class-ref in libGooglePlusUniversal.a(GooglePlusSignIn.

有些简单的事情有时就是不起作用;)就像这个!我正试图按照以下说明将Google+SDK集成到iPhone应用程序中:

我做了每一步。但当我构建应用程序时,它会抱怨以下错误:

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_GTMOAuth2Keychain", referenced from:
      objc-class-ref in libGooglePlusUniversal.a(GooglePlusSignIn.o)
  "_OBJC_CLASS_$_GTMOAuth2SignIn", referenced from:
      objc-class-ref in libGooglePlusUniversal.a(GooglePlusSignIn.o)
  "_OBJC_CLASS_$_GTMOAuth2ViewControllerTouch", referenced from:
      objc-class-ref in libGooglePlusUniversal.a(GooglePlusSignIn.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
它报告的类是开源Google工具箱项目的一部分(该项目也存在于下载的SDK中,但说明要求用户在XCode中的项目中只包含GooglePlusShare.h和libGooglePlusUniversal.a)。我试着包含“google-plus-ios-sdk-1.0.0\OpenSource”目录中的头文件,但是没有用。我尝试从“google-plus-ios-sdk-1.0.0\OpenSource”目录中包含整个(而不仅仅是.h文件)&这会导致很多与ARC相关的错误(超过500个!);所以我放弃了这个选择

有关于如何解决这些链接器错误的帮助吗


我的环境:XCode 4.3.3、iOS 5.0、Mac OS X Lion 10.7.4,使用iPhone 4进行测试,缺少密钥链和身份验证内容通常意味着您从未在项目中导入Security.framework

如果你真的包含了这些库,请另找一次

  • 安全框架
  • SystemConfiguration.framework
在您的Xcode项目中,如您参考的说明的步骤1所述

要验证这一点,请执行以下操作:

  • 在xcode中单击您的项目名称,然后选择您的目标
  • 在“构建阶段”选项卡下,这两个框架应列在名为“将二进制文件链接到库”的段落下
  • 如果未列出,请按+按钮添加它们

谢谢你的回复,杰克。但我再次检查;我确实在目标中包含了这两个库。奇怪的是,作为最后一项检查,为了确保它使用最新的设置生成,您可以尝试通过进入organizer->project->Your project->Delete(派生数据)Hi Jake,G+网站关于集成到iOS应用程序的教程来完全清理项目派生数据文件(我不记得以前尝试集成时看到过)说:“在Xcode项目中包含开源目录中的所有文件。”但是,这会产生无数错误,因为我的项目在ARC中,而包含的“开源”目录代码不是。是否有符合ARC的G+库版本(或开放源码的Google Mac工具包)?嗨,Jean。你需要做的就是对不支持ARC的文件禁用ARC。完全支持在你的项目中同时包含ARC和非ARC代码。请看这个问题:与Xcode 5.1、iOS 7.1 SDK具有相同的功能。有什么想法吗?
 Just select GData.xcodeproj .
 select GDataTouchStaticLib from target .
 search "othet c flag"
 remove "-DGTM_INCLUDE_OAUTH2=1" if exist

 add "-DGDATA_INCLUDE_OAUTH2=1"
 click on done. clean project and then build.