Я хочу определить операционную систему хоста, на которой установлен 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
.
Может кто-нибудь помочь мне с этим?
В классе Fastlane Helper
есть несколько методов, которые могут вам помочь:
FastlaneCore::Helper.operating_system
возвращает строку: "macOS"
, "Windows"
, "Linux"
или "Unknown"
.FastlaneCore::Helper.windows?
возвращает true
или false
FastlaneCore::Helper.linux?
или FastlaneCore::Helper.mac?
.