7

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

目前,使用:

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

将为调试和发布模式设置值。还尝试使用:

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

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

4

2 回答 2

4

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

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

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

于 2015-07-22T02:03:23.813 回答
2

您可以通过在 podspec 文件中添加以下内容来实现所需的功能:

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

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

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

于 2018-08-03T06:44:07.523 回答