架构 arm64 的未定义符号:“_OBJC_CLASS_$_GANTracker

Undefined symbols for architecture arm64: "_OBJC_CLASS_$_GANTracker

目前我正在用新的 SDK 9.0 转换一个旧的基于 sdk 的项目。

我遇到了一个问题,我需要在这里咨询。如果我将 "Build Active Architecture Only" 设置为 "YES",那么它会在我的设备上成功调试 iPhone 5.

但是当我将它设置为 "No" 时它会在编译时显示错误。这显示在下面的警告和错误消息中。

ld: warning: ignoring file /Users/narendravaishnav/Naren/SVN Projects/MyApp/libGoogleAnalytics.a, missing required architecture arm64 in file /Users/narendravaishnav/Naren/SVN Projects/MyApp/libGoogleAnalytics.a (3 slices)

Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_GANTracker", referenced from:
      objc-class-ref in MyAppDelegate.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这是 libGoogleAnalytics.a 的一些旧版本吗,但是当我用我连接的设备调试时这个工作正常 "Build Active Architecture Only" = "YES".

有什么快速建议可以解决这个问题吗?

当您将 Build Active Architecture Only 选项设置为 YES 时,它会为连接的设备构建。由于那是带有 A6(32 位)芯片的 iPhone 5,那么您的构建成功了。如果它是 iPhone 5S,那么它可能无法构建,因为它具有 A7(64 位)芯片。

当您将选项设置为 NO 时,它必须针对所有架构构建,包括较新的 64 位处理器。

从错误来看,您安装的google analytics似乎没有包含arm64版本。尝试安装最新版本。看来您需要 3.03 或更高版本。