No commit activity in last 3 years
No release in over 3 years
ObjectiveRelease gives you nice methods for updating your build version and release notes
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 0.9.12
~> 2.6.0

Runtime

~> 2.4.1
~> 3.1.0
 Project Readme

ObjectiveRelease

As a ruby programmer used to cap deploy for deployments, I want a simple way to deploy the iOS apps I work on.

ObjectiveRelease does two things:

  • Increments your app's minor version number
  • Generates release notes based on git commits since your last release

System Requirements

  • git
  • ruby
  • bundler
  • iOS app

Usage

Install the objective_release gem:

gem install objective_release

Add a Rakefile like the following to your iOS project root:

require 'objective_release'

namespace :version do
  desc "Bump version and update release notes"
  task :bump do
    basedir = File.join(File.dirname(__FILE__), 'MyApp')
    config = File.join(basedir, "MyApp-Info.plist")       # Path to the Plist config for your iOS app
    release_notes = File.join(basedir, "RELEASE_NOTES")   # Create one of these if you don't have one

    release = ObjectiveRelease::Release.new
    release.update_bundle_version(config)
    release.update_release_notes(release_notes)
  end
end

Then from your shell, just run the rake task:

rake version:bump

Examples

Here are some examples of how your local files will change after running the rake task:

Definitely check out the code if you run into issues or can't figure out how this thing should work.

ObjectiveRelease + BetaBuilder = Easily Deploy to TestFlight

If what you really want is push-button iOS deployments (I do!), and you're a TestFlight fan:

Add a Gemfile to the root of your iOS project:

source :rubygems

gem 'betabuilder', '0.4.1'
gem 'objective_release', '0.1.7'

Then add a Rakefile to your project root:

require 'rubygems'
require 'betabuilder'
require 'objective_release'

desc "Increment the version number and deploy via TestFlight"
task :bump_and_deploy => ["version:bump", "beta:deploy"]

namespace :version do
  desc "Bump version and update release notes"
  task :bump do
    basedir = File.join(File.dirname(__FILE__), 'MyApp')
    config = File.join(basedir, "MyApp-Info.plist")
    release_notes = File.join(basedir, "RELEASE_NOTES")

    release = ObjectiveRelease::Release.new
    release.update_bundle_version(config)
    release.update_release_notes(release_notes)
  end
end

BetaBuilder::Tasks.new do |config|
  config.target = "MyApp"
  config.configuration = "Distribution"
  config.deploy_using(:testflight) do |testflight|
    testflight.api_token = "your-api-token-here"
    testflight.team_token = "your-team-token-here"
    testflight.distribution_lists = %w{TestFlight Distribution List}
    testflight.generate_release_notes do
      File.open('MyApp/RELEASE_NOTES', 'rb') {|f| f.read }
    end
    testflight.notify = true
  end
end

Then just run rake bump_and_deploy and sit back and relax while your deployment is run automatically.

See Also

Contributing

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with Rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright (c) 2011 Shay Frendt. See LICENSE for details.