Swift 设置自定义预编译宏

2024-11-17  本文已影响0人  Luke_Hu

在开发中经常用 target 区分正式、测试环境,用到自定义的预编译宏来判断,OC中可以在 target 的 Preprocessor Macros 里设置,Swift 则不同。

Swift设置预编译宏

本文以自定义 RELEASE_BETA 为例

  1. 选中 target ---> Build Settings ---> 搜索 Swift Compiler - Custom Flags
  2. 展开 Active Compilation Conditions 进行设置,只能这样写:RELEASE_BETA, 不能像OC一样设置RELEASE_BETA =1
  3. 展开 Other Swift Flags 同样设置 RELEASE_BETA,需要这样写: -D RELEASE_BETA,填完后是 -DRELEASE_BETA 分成两行的,(如果项目中用到了CocoaPods 可以参考)
  4. 设置完成
    在用到的地方使用:
#if TEST
let BASEURL = ""
#else
let BASEURL = ""
#endif

如果是 OC 和 Swift 混编的项目,OC也需要用到,则还是在 Preprocessor Macros 里添加一遍。

pods组件中使用

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
        if config.name == 'Release_Beta'
            config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = ['$(inherited)', 'RELEASE_BETA=1']
            config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = ['$(inherited)', 'RELEASE_BETA']
            config.build_settings['OTHER_SWIFT_FLAGS'] = ['$(inherited)', '-D', 'RELEASE_BETA']
        end
    end
  end
end

[参考文章]https://zhuanlan.zhihu.com/p/144529227

上一篇 下一篇

猜你喜欢

热点阅读