class Fastlane::Helper::VersioningIosHelper

Constants

XCODEPROJ_TEST

Public Class Methods

get_build_number_command(xcodeproj) click to toggle source
# File lib/fastlane/plugin/versioning_ios/helper/versioning_ios_helper.rb, line 33
def self.get_build_number_command(xcodeproj)
  path = self.get_xcodeproj_path(xcodeproj)
  return [
    "cd", path, "&&", "agvtool", "what-version", "-terse"
  ].join(" ")
end
get_version_command(xcodeproj) click to toggle source
# File lib/fastlane/plugin/versioning_ios/helper/versioning_ios_helper.rb, line 18
def self.get_version_command(xcodeproj)
  path = self.get_xcodeproj_path(xcodeproj)
  return [
    "cd", path, "&&", "agvtool", "what-marketing-version", "-terse1"
  ].join(" ")
end
get_xcodeproj(xcodeproj) click to toggle source
# File lib/fastlane/plugin/versioning_ios/helper/versioning_ios_helper.rb, line 8
def self.get_xcodeproj(xcodeproj)
  return Helper.test? ? XCODEPROJ_TEST : xcodeproj
end
get_xcodeproj_path(xcodeproj) click to toggle source
# File lib/fastlane/plugin/versioning_ios/helper/versioning_ios_helper.rb, line 12
def self.get_xcodeproj_path(xcodeproj)
  project_file = self.get_xcodeproj(xcodeproj)
  path = project_file ? File.join(project_file, "..") : "."
  return File.expand_path(path).shellescape
end
is_agv_enabled(xcodeproj) click to toggle source
# File lib/fastlane/plugin/versioning_ios/helper/versioning_ios_helper.rb, line 57
def self.is_agv_enabled(xcodeproj)
  # We do not want to run agvtool under tests to avoid
  # output about not having a project configured for AGV
  command_get = "#{self.get_version_command(xcodeproj)} > /dev/null 2>&1"
  unless Helper.test?
    agv_enabled = system(command_get)
    raise "Apple Generic Versioning (AGV) is not enabled." unless agv_enabled
  end
end
parse_build_number(build_number) click to toggle source
# File lib/fastlane/plugin/versioning_ios/helper/versioning_ios_helper.rb, line 53
def self.parse_build_number(build_number)
  return build_number.to_s.strip
end
parse_version(version) click to toggle source
# File lib/fastlane/plugin/versioning_ios/helper/versioning_ios_helper.rb, line 48
def self.parse_version(version)
  # @todo SemVer check
  return version.to_s.strip
end
set_build_number_command(xcodeproj, build_number) click to toggle source
# File lib/fastlane/plugin/versioning_ios/helper/versioning_ios_helper.rb, line 40
def self.set_build_number_command(xcodeproj, build_number)
  path = self.get_xcodeproj_path(xcodeproj)
  agvtool_command = build_number ? "new-version -all #{self.parse_build_number(build_number)}" : "next-version -all"
  return [
    "cd", path, "&&", "agvtool", agvtool_command
  ].join(" ")
end
set_version_command(xcodeproj, version) click to toggle source
# File lib/fastlane/plugin/versioning_ios/helper/versioning_ios_helper.rb, line 25
def self.set_version_command(xcodeproj, version)
  path = self.get_xcodeproj_path(xcodeproj)
  version = self.parse_version(version)
  return [
    "cd", path, "&&", "agvtool", "new-marketing-version", version
  ].join(" ")
end