Cocoapods仅为Debug指定podspec xcconfig值

我正在使用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]标记时不同。 有没有办法将其限制为仅调试模式?

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

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

看到这个旧答案: https : //stackoverflow.com/a/26074997/1509221

您可以在podspec文件中添加以下内容来实现所需:

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

您可以使用变量替换根据构建配置名称(即GCC_PREPROCESSOR_DEFINITIONS _ $(CONFIGURATION))基于其名称创建的其他变量为GCC_PREPROCESSOR_DEFINITIONS分配值。

你可以在这里阅读更多内容https://pewpewthespells.com/blog/xcconfig_guide.html#VariableSubstitution