为cocoapod依赖项指定预处理器宏,而不需要它

mat*_*hat 9 xcode cocoapods

我有一个XCode工作区,由Cocoapod一些外部库的依赖项管理.其中之一,MTDates,使用前缀方法进行扩展NSDate,NSDateComponents如果定义了某个预处理器宏,则为非前缀(这就是我想要的).

有几个地方我可以放置预处理器宏定义,以便编译库提供非前缀的方法,但是一旦我要求Cocoapod更新项目,所有似乎都会重置,这让我认为这些配置是由pod规范驱动的.这些包括 :

  • pod的目标构建设置
  • pod的私人.xcconfig文件位于Cocoapod的目标支持文件中

更改pod的规范需要管理我自己的库版本,从而失去在cocoapods新版本出现时更新它的能力.所以我的问题是:有没有办法为cocoapod依赖项指定预处理器宏,而不需要分配pod并更改pod的规范本身?

编辑:

关于这一点存在一个悬而未决的问题,似乎即将到来.

TWi*_*lly 9

此功能现已推出.下面是您可以放在Podfile底部以根据特定配置添加宏的示例.

post_install do |installer_representation|
  installer_representation.project.targets.each do |target|
    if target.name == "Pods-TweaksBuildConfigurationsDemo-Tweaks"
      target.build_configurations.each do |config|
        if config.name == 'QA'
          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'FB_TWEAK_ENABLED=1']
        end
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 那么你需要添加10行代码来定义宏吗?这太可怕了. (7认同)
  • 使用cocoapods版本1.0.0.beta.3我必须使用installer_representation.pods_project而不是installer_representation.project (3认同)