fastlane-检测主机操作系统

时间:2018-10-27 12:00:04

标签: android macos 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 :(得分:1)

Fastlane的Helper类具有一些可以帮助您的方法:

  • FastlaneCore::Helper.operating_system返回一个字符串:"macOS""Windows""Linux""Unknown"
  • FastlaneCore::Helper.windows?返回truefalse
    • 类似地,您可以使用FastlaneCore::Helper.linux?FastlaneCore::Helper.mac?