在Cocoapod podspec的Preprocesor旗子

时间:2016-08-05 07:58:03

标签: swift frameworks cocoapods preprocessor

我正在构建一个在其中一个方法中使用preprocesor标志的框架。类似下面的代码:

public func heyStuck(overflow: String) {
    #if DEBUG
        print(overflow)
    #else
        print("¯\\_(ツ)_//¯")
    #endif
}

关键是我使用Cocoapods导入我的框架,为了定义框架的标志DEBUG,我必须在我的App Podfile中做这样的事情:

post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            if config.name != 'Release'
                config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'DEBUG=1']
        end
        end
    end
end

有没有办法将这些信息添加到podspec文件中,以避免应用程序在其Podfile上定义此内容?

2 个答案:

答案 0 :(得分:7)

我终于得到了它,在我的podspec文件中使用了以下魔法:

s.pod_target_xcconfig = {
  'OTHER_SWIFT_FLAGS[config=Debug]' => '-DDEBUG',
}

答案 1 :(得分:0)

您可以尝试使用prefix_header_contents。例如:

s.prefix_header_contents = #define DEBUG 1