2011-08-15 23 views
1

我使用gdata框架,我想用GDataYoutube库创建youtube应用程序。我使用交叉引用项目Gdata创建项目,但现在我在xcode 4 - > product - > archive中遇到了一个选项问题。当我建立我的应用程序时,我得到这个错误:'服务占位符编译器标志应该被实际服务规范取代'如何使用Gdata库运行项目

#if !DEBUG 
    #if GDATA_INCLUDE_nameServiceHere_SERVICE && !GDATA_SUPPRESS_INCLUDE_WARNING 
    #error The service placeholder compiler flag should be replaced by actual service specifications 
    #endif 
#endif 

感谢您的帮助!

回答

4

gdata是一个单片库,Objective-c版本允许您使用预处理器机制来链接您不感兴趣的服务。似乎它应该是一个便利功能,但作者选择使它强制性的。这可能是最好的:在我的二进制文件中使用4MB的脂质体。

例如说你要使用时只需将iOS版YouTube API,你打开的GData项目,重复libGDataTouchStaticLib.a目标,然后加入

-DGDATA_REQUIRE_SERVICE_INCLUDES=1 
-DGDATA_INCLUDE_YOUTUBE_SERVICE=1 

构建设置>其他C标志

这解决您的构建问题为您提供了一个精简的应用程序。奖金!

+0

我评论这个错误,贝科使用我没有服务使用Gdata除了我自己的应用程序。 – anna

1

另外,如果你需要使用的GData几个(或全部)的模块,你应该在0

-DGDATA_REQUIRE_SERVICE_INCLUDES=0 

将其设置为1每次设置需要的服务,它会等待一个指定模块要使用(在你的情况下,YouTube)的,所以它看起来是这样的:

-DGDATA_REQUIRE_SERVICE_INCLUDES=1 
-DGDATA_INCLUDE_YOUTUBE_SERVICE=1 

下面是你应该设置这些截图:http://i.imgur.com/RN7Ot.png