【问题标题】:Cocoapods specify podspec xcconfig value for Debug onlyCocoapods 仅为 Debug 指定 podspec xcconfig 值
【发布时间】:2015-05-28 06:50:44
【问题描述】:

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

【问题讨论】:

    标签: ios cocoapods podspec


    【解决方案1】:

    你可以通过在你的 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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我一直在寻找解决方案。这是否意味着必须在规范存储库中注册两个单独的 pod?或者你可以在一个主规范中有两个 podspec 吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 2013-10-11
      • 2012-12-15
      • 2015-08-25
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多