fastlane - определяет операционную систему хоста - PullRequest
0 голосов
/ 27 октября 2018

Я хочу определить операционную систему хоста, на которой установлена ​​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 голосов
/ 29 октября 2018

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

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