我想检测安装了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
有人可以帮我吗?
答案 0 :(得分:1)
Fastlane的Helper
类具有一些可以帮助您的方法:
FastlaneCore::Helper.operating_system
返回一个字符串:"macOS"
,"Windows"
,"Linux"
或"Unknown"
FastlaneCore::Helper.windows?
返回true
或false
FastlaneCore::Helper.linux?
或FastlaneCore::Helper.mac?