如何在Pod中使用OTHER_SWIFT_FLAGS

时间:2016-07-19 01:15:36

标签: ios swift xcode cocoapods

有没有人试图在基于Swift的Pod中使用构建配置标志?我正在尝试使用post_install挂钩添加" OTHER_SWIFT_FLAGS"到我正在研究的私人Swift吊舱。基本上,我希望能够执行#if DEV #elseif QA #else #endif之类的操作,根据我使用的目标更改端点。我整合pod的项目也使用DEV& amp; QA标志适用于相应的DEV&质量保证目标。

这是一个post_install挂钩,我从其他类似的帖子中得到了帮助:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if target.name == 'Pods-Test-QA'
            puts "Found #{target.name}. Adding Swift Flag..."
            target.build_configurations.each do |config|
                puts "Configuration: #{config}"
                config.build_settings['OTHER_SWIFT_FLAGS'] ||= ['$(inherited)']
                config.build_settings['OTHER_SWIFT_FLAGS'] << '-DQA'
                puts "#{config.build_settings['OTHER_SWIFT_FLAGS'].inspect}"
            end
        end
        if target.name == 'Pods-Test-DEV'
            puts "Found #{target.name}. Adding Swift Flag..."
            target.build_configurations.each do |config|
                puts "Configuration: #{config}"
                config.build_settings['OTHER_SWIFT_FLAGS'] ||= ['$(inherited)']
                config.build_settings['OTHER_SWIFT_FLAGS'] << '-DDEV'
                puts "#{config.build_settings['OTHER_SWIFT_FLAGS'].inspect}"
            end
        end
    end
end

运行pod install之后,post_install成功添加了标志,如下图所示,用于Pods-Test-QA&amp;豆荚试验DEV。

enter image description here

但是,当我使用QA或DEV目标运行项目并使用以下标志时,它总是命中PROD:

#if DEV
    print("DEV ENVIRONMENT")
#elseif QA
    print("QA ENVIRONMENT")
#else
    print("PROD ENVIRONMENT")
#endif

我有什么遗失的东西吗? 此外,出于某种原因Pods-Test-QA.debug.xcconfig&amp; DEV似乎没有使用我已添加的标记进行更新。有没有人知道它为什么不在.xcconfig文件中更新?

OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS"

任何帮助将不胜感激。提前致谢。

使用:

  • cocoapods(1.0.1)
  • Xcode 7.3.1

0 个答案:

没有答案