class Fastlane::Actions::EnsureXcodeBuildVersionAction

Public Class Methods

authors() click to toggle source
# File lib/fastlane/plugin/ensure_xcode_build_version/actions/ensure_xcode_build_version_action.rb, line 28
def self.authors
  ["Fumiya Nakamura"]
end
available_options() click to toggle source
# File lib/fastlane/plugin/ensure_xcode_build_version/actions/ensure_xcode_build_version_action.rb, line 32
def self.available_options
  [
    FastlaneCore::ConfigItem.new(key: :build_version,
                                 env_name: "FL_ENSURE_XCODE_BUILD_VERSION",
                                 description: "Xcode Build version to verify that is selected",
                                 is_string: true,
                                 optional: false)
  ]
end
description() click to toggle source
# File lib/fastlane/plugin/ensure_xcode_build_version/actions/ensure_xcode_build_version_action.rb, line 19
def self.description
  "Ensure the selected Xcode Build version with xcode-select matches a value"
end
details() click to toggle source
# File lib/fastlane/plugin/ensure_xcode_build_version/actions/ensure_xcode_build_version_action.rb, line 23
def self.details
  "If building your app requires a specific version of Xcode, you can invoke this command before using gym.\n
  For example, to ensure that a beta version is not accidentally selected to build, which would make uploading to TestFlight fail."
end
is_supported?(platform) click to toggle source
# File lib/fastlane/plugin/ensure_xcode_build_version/actions/ensure_xcode_build_version_action.rb, line 51
def self.is_supported?(platform)
  [:ios, :mac].include?(platform)
end
output() click to toggle source
# File lib/fastlane/plugin/ensure_xcode_build_version/actions/ensure_xcode_build_version_action.rb, line 42
def self.output
  [
    ['FL_ENSURE_XCODE_BUILD_VERSION', 'Xcode Build version to verify that is selected']
  ]
end
return_value() click to toggle source
# File lib/fastlane/plugin/ensure_xcode_build_version/actions/ensure_xcode_build_version_action.rb, line 48
def self.return_value
end
run(params) click to toggle source
# File lib/fastlane/plugin/ensure_xcode_build_version/actions/ensure_xcode_build_version_action.rb, line 4
def self.run(params)
  Actions.verify_gem!('xcode-install')
  required_build_version = params[:build_version]
  selected_build_version = sh("xcversion selected").match(/Build version (.*)$/)[1]

  if selected_build_version == required_build_version
    UI.success("Selected Xcode Build version is correct: #{selected_build_version}")
  else
    UI.message("Selected Xcode Build version is not correct: #{selected_build_version}. You expected #{required_build_version}.")
    UI.message("To correct this, use: `xcode_select(version: #{required_build_version})`.")

    UI.user_error!("Selected Xcode Build version doesn't match your requirement.\nExpected: Build version #{required_build_version}\nActual: #{selected_build_version}\n")
  end
end