【问题标题】:Undefined symbols for architecture armv7: "_OBJC_CLASS_$_GGLContext", referenced from: objc-class-ref in AppDelegate.o架构 armv7 的未定义符号:“_OBJC_CLASS_$_GGLContext”,引用自:AppDelegate.o 中的 objc-class-ref
【发布时间】:2015-06-29 06:10:37
【问题描述】:

我正在尝试在我的 iSO 应用中添加 Google Analytics,并且我正在使用 Google Analytics 最新的 SDK https://developers.google.com/analytics/devguides/collection/ios/v3/.

已成功将所有必需的标头和框架添加到我的项目中。但是在运行我的应用程序时,我遇到了以下错误

  1. (null):“_OBJC_CLASS_$_GGLContext”,引用自:AppDelegate.o 中的objc-class-ref

  2. (null):链接器命令失败,退出代码为 1(使用 -v 查看调用)

下面是我写在 AppDelegate.m 文件中的代码

// Configure tracker from GoogleService-Info.plist.
NSError *configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSAssert(!configureError, @"Error configuring Google services: %@", configureError);

// Optional: configure GAI options.
GAI *gai = [GAI sharedInstance];
gai.trackUncaughtExceptions = YES;  // report uncaught exceptions
gai.logger.logLevel = kGAILogLevelVerbose;  // remove before app release

还包括(_OBJC_CLASS_$_GIDSignInButton 和 _OBJC_CLASS_$_GIDSignIn) 请告诉我我错过了什么。提前致谢。

【问题讨论】:

  • 您找到解决方案了吗?我也有同样的问题。
  • 还没有。我尝试了以下答案,但对我来说没有任何效果。
  • 解决了这个问题。看我的回答。我还添加了 libGGLCore.a 到 Link Binary with Libraries

标签: ios google-analytics xcode6 cocoapods


【解决方案1】:

OPN [Debug] 目标覆盖了OTHER_LDFLAGS 构建设置”。这是主要问题。在其他链接器标志的新行中添加 $(inherited) 后解决了我的问题。

【讨论】:

  • 当我偶然发现这个时,我尝试了 20 种不同的方法。如果可以的话,我会投票两次。
  • @Arti .. 真棒...我很想改变这个问题,因为 GGL​​Context 在优先级中较低,失败相同,解决相同,但也许如果你修改了身体您的原始问题的文本包括 _OBJC_CLASS_$_GIDSignInButton 和 _OBJC_CLASS_$_GIDSignIn ...对于其他服务可能更多,它可以帮助其他进行网络搜索的受害者更轻松地找到您的问答。 (我花了大约半个小时没有成功搜索,直到我更改为 GGL​​Context)再次感谢您的解决方案:)
【解决方案2】:

如果您使用 pod 来安装链接建议的库,请确保在运行 pod install 时检查是否有任何错误。可能是您在构建设置中更改了 OTHER_CFLAGS 或 OTHER_LDFLAGS,这可能会导致问题。 如果是这种情况,您可能希望在这两个标志的新行中添加“$(inherited)”。

【讨论】:

    【解决方案3】:

    看起来您没有链接到Google libraries 之一;我猜是分析。

    【讨论】:

      【解决方案4】:

      尝试将 libGGLCore.a 和 libGGLAnalytics.a 添加到 Link Binary with Libraries

      【讨论】:

        【解决方案5】:

        一个小错误,Google SDK 不起作用。我是 CocoaPods 的新手,我不知道您必须在目标中添加 google analytics pod。像这样:

        # Uncomment this line to define a global platform for your project
        platform :ios, '8.0'
        # Uncomment this line if you're using Swift
        # use_frameworks!   
        
        target 'NAME_OF_THE_TARGET' do
          pod 'Google/Analytics'
        end
        

        【讨论】:

          【解决方案6】:

          当我设定一个发展目标时,这发生在我身上。生产目标运行良好,但开发不断提出这些错误。我的问题出在 pod 文件中。一开始:

          target 'NAME-OF-TARGET' do
          # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
          use_frameworks!
          
          # Pods for MAIN-TARGET
          pod 'GoogleSignIn'
          pod 'Firebase/Core'
          pod 'Firebase/Database'
          
          target 'DEV TARGET' do
              inherit! :search_paths           <----------
              # Pods for dev-target
              pod 'GoogleSignIn'
              pod 'Firebase/Core'
              pod 'Firebase/Database'
          end
          

          我指出的箭头是问题所在。 我将它从inherit! :search_paths 更改为use_frameworks! 并且错误已完成。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-08-03
            • 1970-01-01
            • 2015-05-07
            • 2018-04-23
            • 1970-01-01
            • 1970-01-01
            • 2016-12-28
            • 2016-05-26
            相关资源
            最近更新 更多