Skip to content

Instantly share code, notes, and snippets.

@roymckenzie
Last active October 25, 2016 01:00
Show Gist options
  • Save roymckenzie/6cce2ce98d2fa53e5be211de4fa08e81 to your computer and use it in GitHub Desktop.
Save roymckenzie/6cce2ce98d2fa53e5be211de4fa08e81 to your computer and use it in GitHub Desktop.
Date based version number generator for fast lane (YYYYMMDD.0)
platform :ios do
lane :beta do
# ...
increment_build_number(xcodeproj: "ProjectName.xcodeproj",
build_number: date_based_build_number)
end
# Generate todays date formatted for version
def today_formatted
Date.today.strftime('%Y%m%d')
end
# Generate build number with format: YYYMMDD.0 automatically increments 0 if same day
def date_based_build_number
current_build_number = get_build_number(xcodeproj: "FitMatch.xcodeproj")
build_number_parts = current_build_number.split(".")
build_date = build_number_parts[0]
build_version = build_number_parts[1]
if (!build_date || !build_version) || (build_date.empty? || build_version.empty?)
return default_build_number
end
begin
build_date_object = Date.strptime(build_date, '%Y%m%d')
rescue
return default_build_number
end
if build_date_object.today?
new_version = build_version.to_i + 1
return "#{today_formatted}.#{new_version}"
end
return default_build_number
end
# Default build number to avoid replicating code
def default_build_number
"#{today_formatted}.0"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment