我使用gdata框架,我想用GDataYoutube库创建youtube应用程序。我用交叉引用项目Gdata创建项目,但现在我在xcode 4中有选项的问题 - >产品 - >存档。当我构建我的应用程序时,我收到此错误:'服务占位符编译器标志应替换为实际服务规范'
#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
感谢您的帮助!
答案 0 :(得分:4)
gdata是一个单片库,objective-c版本允许您使用预处理器机制来链接您不感兴趣的服务。看起来它应该是一个方便的功能,但作者选择强制它。它可能是最好的:使用它从我的二进制文件中加脂4MB。
e.g。假设您只想在iOS上使用YouTube API,则打开GData项目,复制libGDataTouchStaticLib.a目标,然后添加
-DGDATA_REQUIRE_SERVICE_INCLUDES=1
-DGDATA_INCLUDE_YOUTUBE_SERVICE=1
构建设置>其他C旗帜
这可以修复您的构建问题并且为您提供更精简的应用。奖金!
答案 1 :(得分:1)
此外,如果您需要在GData中使用SEVERAL(或所有)模块,则只需将require服务设置为0
-DGDATA_REQUIRE_SERVICE_INCLUDES=0
每次将其设置为1时,它都会等待您要使用的规范模块(在您的情况下为youtube),因此它看起来像:
-DGDATA_REQUIRE_SERVICE_INCLUDES=1
-DGDATA_INCLUDE_YOUTUBE_SERVICE=1
以下是您应该设置这些内容的屏幕截图:http://i.imgur.com/RN7Ot.png