“_OBJC_CLASS _ $ _ GDataOAuthAuthentication”,引用自:

问题描述:

我是ios的新开发项目,在ios 5.1模拟器上运行时工作正常,没有出现任何错误,但是在同一个项目中运行ios 6.0时,ios 6.1模拟器我得到以下errors.Can任何人都可以建议我如何纠正这个问题?

错误:

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

试试这个,

的主要问题是,我还以为你正在使用旧的GData SDK。你只需 从Apple LLVM 4.2将编译器更改为LLVM GCC 4.2, 完美地编译应用程序。

我附上截图,供大家参考

项目 - >靶>构建设置 - >构建选项 enter image description here

你链接到的那些没有被编为你当前的架构/ SDK版本外部库。我看到您正在使用VDOAds库,该库可能是针对5.1 SDK进行了预编译的。您需要获得针对最新iOS SDK预编译的版本。

TargetSettings - > Build Phases - > Compile Sources并确保这些缺少的库包含在那里。

+0

我试了一下还是我得到同样的错误 – Ravindhiran

所以你有两个问题,对于警告,库被添加到你的构建阶段,但他们从项目中删除,他们仍然在那里。

对于该错误,您正在使用的库不会添加到Build Phases - > Link Binary With Libraries中。

因此,为了解决这个警告/错误,转到您的项目目标 - >构建阶段 - >链接二进制库,并搜索libGoogleAnalytics(我认为这是GA的),并将其删除(如果不需要)。

还在那里添加VDOAds库以修复错误。

我还为目标添加了屏幕截图,如果您不知道它,将更容易找到它。 enter image description here