2

我为我的 Xcode 项目添加了一个配置(adhoc)(假设名称是 Flurry),我想在该配置中添加一个GCC_PREPROCESSOR_DEFINITIONS类似 DEBUG 的配置。我通过 pro_install hook 做到了。我添加了以下代码:

post_install do |installer|
installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
        if config.name == "Adhoc"
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] <<  "ADHOC"
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] <<  "ADHOC=1"
        end
    end
end

结尾

因为我使用的是cocoapods 0.38.2,所以我需要使用pods_project代替project.

该代码适用于 cocoapods 生成的目标,如 AFNetworking、Pods-Flurry 和所有第三方框架。但它并没有对我的项目Flurry做任何改变。所以当我使用以下代码时,预处理器marco ADHOC没有工作:

#ifdef ADHOC
NSLog(@"do something here");
#endif

那么,如何使用 post_install 钩子在我的临时配置中添加预处理器 marco。

顺便说一句,下面的代码适用于旧版本,如 0.37.1:

pods_project 和 project 只有一个区别

post_install do |installer|
installer.project.targets.each do |target|
    target.build_configurations.each do |config|
        if config.name == "Adhoc"
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] <<  "ADHOC"
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] <<  "ADHOC=1"
        end
    end
end

结尾

4

0 回答 0