2012-10-29 55 views
18

当我加入谷歌分析库,我有这个警告谷歌分析库IOS

Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_NSAttributeDescription", referenced from: 
     objc-class-ref in libGoogleAnalytics.a(GAICoreDataUtil.o) 
     objc-class-ref in libGoogleAnalytics_debug.a(GAICoreDataUtil.o) 
    "_OBJC_CLASS_$_NSFetchRequest", referenced from: 
     objc-class-ref in libGoogleAnalytics.a(GAIDataStore.o) 
     objc-class-ref in libGoogleAnalytics_debug.a(GAIDataStore.o) 
    "_NSSQLiteErrorDomain", referenced from: 
     l003 in libGoogleAnalytics.a(GAIDataStore.o) 

请帮我

+0

一个这些都不是警告,这些都是错误的。二,这与Xcode有什么关系?这不是Xcode的抱怨,而是它的底层编译器... – 2012-10-29 10:16:51

回答

41

添加libGoogleAnalytics.a你的目标设定[Build phases]-[Link Binary with Libraries]。还要检查libsqlite3.0dylib(GA存储跟踪数据)和CFNetwork.framework是否被添加,因为它们是Google Analytics/iOS (version 2.0 beta 3)所需的。

P.S.对于Google Analytics/iOS version 3.0,则需要CoreData framework

+0

它现在起作用。感谢您的帮助 – user1781040

+0

它适用于我没有CFNetwork.framework。 – Dmitry

+0

你为我节省了很多时间。谢谢@jki – Lander

13

我在NSAttributeDescription上遇到了同样的问题。在文档中,这个函数来自CoreData.framework,所以我添加了这个框架,并且在这个问题上没有更多的错误。

9

有关的问题Google AnalyticsSDK for iOS v2迁移

我不确定把它写到哪个主题,因为没有确切的问题 - 我碰到并由我自己解决 - 找到了(这个似乎是最接近的(不知道我是否应该打开一个新的)),但可能对某人有帮助。

问题:

我已经安装在我以前(1.5.1)SDK “软件开发工具包/ Google分析SDK”单独的文件夹。在v2迁移中,我将新文件放入“SDK/GoogleAnalytics SDK v2”。按照关于迁移的所有说明(来自Google网站)(详细地说,这是从第一个文件夹中删除以前对文件的引用,并从新文件夹中添加新的文件),我开始得到以下错误在编译消息:

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

我去google搜索(和stackoverflowing)的低谷第一页和最流行的解决方案建议是“设置‘构建有源体系仅’属性‘YES’”(我的活动架构是“armv7 armv7s”)。 但是根本没有帮助

解决方案:

然而,奇迹发生了。我注意到有一个旧目录“SDKs/GoogleAnalytics SDK”被列在链接程序中。所以,之后,目录删除(因为我不知道目录列表中存在的设置),一切都开始编译和工作像一个魅力(也设置'只建立活动架构'为'是'没有必要为了我)。

+1

也许它被列在“构建设置>库搜索路径” – Adri

+1

可能是这样 - 很难找到问题的核心。但事情是,我已经做了所有事情,因为移民指南说,没有提到你提到的选项。 – Agat

6

我有类似的错误,实际上更多(SDK 2.0 beta 4)。添加分析库/头,与这两个框架链接之后解决的问题:

CoreData.frameworkSystemConfiguration.framework

+0

唯一正确的答案。 – Dmitry

+2

CoreData.Framework解决了我的问题。谢谢! – scurioni

3

我是有这个问题,因为我没有添加libGoogleAnalytics_debug.a文件。问题刚刚得到解决,因为我添加了这个文件并重新构建了项目。

0

我有一个ODD奇怪的问题。出于某种原因,libGoogleAnalytics.a复制包资源当它是应该是在链接二进制与图书馆

希望这可以帮助别人。

0

迁移到SDK 2.0 beta 4后出现类似问题。通过从Adder指出的我的编译设置>库搜索路径解决旧GA库路径。

7

添加-lGoogleAnalyticsServices在生成设置 - >其它链接器标记

+0

这正是我的问题所在。需要添加框架/添加其他... /选择文件“libGoogleAnalyticsServices.a”并完成,错误消失。该文件在“入门”文档中未提及。 –

4

我跟着this教程。它说要加

#import "GAI.h" 
#import "GAIFields.h" 

进入NameofTheProject-Prefix.pch文件。

另外还有CoreData.frameworkSystemConfiguration.frameworklibz.dylib 它解决了所有问题。

+0

添加libz.dylib为我解决了这个问题。谢谢。 – Gopinathan

0

我遵循了所有建议,但仍然在XCODE 5.1.1上遇到错误。

对我来说,错误出现在目标> Build Setting> Architecture> Architectures中。

我用ARCHS_STANDARD_32_BIT替换了值,错误消失了。

也许libGoogleAnalytics lib未针对64位体系结构进行编译。

希望这会帮助别人。或者获取最新的为64位编译的lib。

0

如果使用的CocoaPods确保其他连接标志只有$(inherited)标志,并移除任何孩子架构标志。

对于框架搜索路径和也只设置$(inherited)标志库搜索路径。

头桥文件里面把#import <Google/Analytics.h>