【问题标题】:Google plus SDK emits linker errors when trying to integrate with iPhone AppGoogle plus SDK 在尝试与 iPhone App 集成时发出链接器错误
【发布时间】:2012-08-15 12:04:30
【问题描述】:

一些简单的事情有时根本行不通;)就像这个!我正在尝试按照此处给出的说明将 Google+ SDK 集成到 iPhone 应用中:

https://developers.google.com/+/mobile/ios/#initialize_the_google_client

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

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 测试

【问题讨论】:

  • 与 Xcode 5.1、iOS 7.1 SDK 相同。有什么想法吗?

标签: iphone ios linker ios5


【解决方案1】:
 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.

【讨论】:

    【解决方案2】:

    缺少 keychain 和 auth-stuff 通常意味着您从未在项目中导入 Security.framework。

    如果你确实包含了这些库,请再次检查

    • Security.framework
    • SystemConfiguration.framework

    在您参考的说明的步骤 1 中描述的 Xcode 项目中。

    要验证这一点:

    • 在 xcode 中单击您的项目名称,然后选择您的目标
    • “构建阶段” 选项卡下,这两个框架应列在名为 “Link Binary With Libraries” 部分下。
    • 如果未列出,请按 + 按钮添加它们。

    【讨论】:

    • 感谢您的回复,杰克。但我再次检查;我确实将这两个库都包含在目标中。
    • 奇怪,作为最后一次检查以确保它使用最新设置构建,您可以尝试通过转到管理器 -> 项目 -> 您的项目 -> 删除(派生数据)
    • 嗨,Jake,关于集成到 iOS 应用程序的 G+ 网站教程(我不记得之前尝试集成时看到过)说:“在 Xcode 中包含 OpenSource 目录中的所有文件项目。”但是,这会产生无数错误,因为我的项目在 ARC 中,而包含的“开源”目录代码却不是。是否有符合 ARC 标准的 G+ 库(或适用于 Mac 的开源 Google 工具包)?
    • 嗨,让。您需要做的就是为不支持它的文件禁用 ARC。完全支持在您的项目中同时包含 ARC 和非 ARC 代码。看到这个问题:stackoverflow.com/questions/6646052/…
    猜你喜欢
    • 2013-06-19
    • 2011-12-13
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    相关资源
    最近更新 更多