有没有人试图在基于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。
但是,当我使用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"
任何帮助将不胜感激。提前致谢。
使用: