Доступ к родительскому проекту SWIFT_FLAGS / SWIFT_ACTIVE_COMPILATION_CONDITIONS из структуры модуля - PullRequest
0 голосов
/ 29 мая 2019

Я знаю, что это не очень правильный способ делать вещи, но неважно.

У меня есть этот код в моей структуре, и я могу настроить current из проекта. Но я предпочитаю, чтобы это было сделано без прямой настройки.

public extension Environment {
    static var current: Environment = {
        #if DEBUG
            return .debug
        #elseif CIT
            return .cit
        #elseif STAGING
            return .staging
        #elseif PRODUCTION
            return .production
        #elseif RELEASE
            return .release
        #else
            return .debug
        #endif
    }()
}

1 Ответ

0 голосов
/ 29 мая 2019

Вот хук post_install, который я нашел с помощью справки из других похожих постов.

Заполните SWIFT_ACTIVE_COMPILATION_CONDITIONS в проекте и добавьте код ниже в Podfile.

Xcode 10.

post_install do |installer|

  require 'xcodeproj'
  project_path = 'Test.xcodeproj' # path to your xcode project
  project = Xcodeproj::Project.open(project_path)

  project.targets.each do |projectTarget|
    if projectTarget.name == 'Test' # name of the target in your main project containing the custom flags
      installer.pods_project.build_configurations.each do |podConfig|
        projectTarget.build_configurations.each do |projectConfig|
          if projectConfig.name == podConfig.name
            podConfig.build_settings["SWIFT_ACTIVE_COMPILATION_CONDITIONS"] ||= [projectConfig.build_settings["SWIFT_ACTIVE_COMPILATION_CONDITIONS"]]
          end
        end
      end
    end
  end

end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...