Fastlane - обнаружение операционной системы хоста

Я хочу определить операционную систему хоста, на которой установлен fastlane. Мне это нужно, потому что в моих сценариях есть некоторые команды, которые выполняются только на Mac, а некоторые выполняются только на машинах Windows.

Я сделал небольшое обходное решение - создать отдельные файлы сценариев для Mac и Windows.

Рассмотрим приведенный ниже фрагмент кода, который записан в моем Fastfile:

platform :android do
    desc "Client Release"
    lane :clientrelease do |options|
        sh "bash fastlane_script_mac.sh " + options[:bundleId] + " " + "release"
        gradle(
            task: "clean"
        )
        gradle(
            task: "assemble",
            flavor: "client",
            build_type: "release"
        )
    end
end

Я ожидаю чего-то вроде ниже:

platform :android do
    desc "Client Release"
    lane :clientrelease do |options|
        if (OS == "MAC") {
            sh "bash fastlane_script_mac.sh " + options[:bundleId] + " " + "release"
        } else {
           sh "bash fastlane_script_windows.sh " + options[:bundleId] + " " + "release"
        }
        gradle(
            task: "clean"
        )
        gradle(
            task: "assemble",
            flavor: "client",
            build_type: "release"
        )
    end
end

Если операционная система хоста - это Windows, используйте fastlane_script_windows.sh, иначе используйте fastlane_script_mac.sh.

Может кто-нибудь помочь мне с этим?

1
0
282
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В классе Fastlane Helper есть несколько методов, которые могут вам помочь:

  • FastlaneCore::Helper.operating_system возвращает строку: "macOS", "Windows", "Linux" или "Unknown".
  • FastlaneCore::Helper.windows? возвращает true или false
    • Точно так же можно использовать FastlaneCore::Helper.linux? или FastlaneCore::Helper.mac?.

Другие вопросы по теме