Cocoapods仅为Debug指定podspec xcconfig值

时间:2015-03-24 19:42:23

标签: ios cocoapods podspec

我正在使用cocoapods,并希望使用特定于调试模式的xcconfig参数在pod的podspec中指定一个值。

目前,使用:

s.xcconfig = { "GCC_PREPROCESSOR_DEFINITIONS" => "MY_DEFINE=1" }

将设置Debug和Release模式的值。还尝试使用:

s.xcconfig = { "GCC_PREPROCESSOR_DEFINITIONS[config=Debug]" => "MY_DEFINE=1" }

但是,虽然这将它设置在pod的预处理器宏中,但在执行代码时似乎没有注册,这与不使用[config = Debug]标记时不同。有没有办法将其限制为仅调试模式?

2 个答案:

答案 0 :(得分:2)

您应该创建两个单独的podspec,每个podspec具有不同的xcconfig,然后使用配置链接到每个podspec:

pod 'my-podspec-debug', :configurations => ['Debug']
pod 'my-podspec-release', :configurations => ['Release']

请参阅此旧答案:https://stackoverflow.com/a/26074997/1509221

答案 1 :(得分:0)

您可以通过将其添加到podspec文件中来实现所需的功能:

 s.xcconfig = { "GCC_PREPROCESSOR_DEFINITIONS" => "$(GCC_PREPROCESSOR_DEFINITIONS_$(CONFIGURATION))",  
                "GCC_PREPROCESSOR_DEFINITIONS_Debug" => "MY_DEFINE=1" }

您可以使用“变量替换”,根据另一个变量来为其分配值,该变量的名称基于您在构建配置名称(即GCC_PREPROCESSOR_DEFINITIONS _ $(CONFIGURATION))中创建的变量。

您可以在此处https://pewpewthespells.com/blog/xcconfig_guide.html#VariableSubstitution

了解更多信息