Behind most every App Store download, there is a painful trail of ad hoc beta builds as developers send beta bits to users to gather feedback and fix bugs. Luke Redpath, UK Rubyist and iOS developer, aims to ease that pain for iOS developers with BetaBuilder, a Ruby gem that bundles up a collection of rake tasks to make it easier to deploy your iOS apps.

BetaBuilder supports distributing your apps own your own server or using TestFlightApp.com. To get started, first install the gem:

gem install betabuilder

Next, require BetaBuilder in your Rakefile:

require 'rubygems'
require 'betabuilder'

… and configure your app:

BetaBuilder::Tasks.new do |config|
  # your Xcode target name
  config.target = "MyGreatApp"

  # the Xcode configuration profile
  config.configuration = "Adhoc" 

  config.deploy_using(:web) do |web|
    web.deploy_to = "http://beta.myserver.co.uk/myapp"
    web.remote_host = "myserver.com"
    web.remote_directory = "/remote/path/to/deployment/directory"
  end
end

Now we can see all of our tasks with rake -T:

rake beta:archive   # Build and archive the app
rake beta:build     # Build the beta release of the app
rake beta:deploy    # Deploy the beta using your chosen deployment strategy
rake beta:package   # Package the beta release as an IPA file
rake beta:prepare   # Prepare your app for deployment
rake beta:redeploy  # Deploy the last build

If you want to use TestFlight instead of hosting your builds yourself, simply swap out the deploy config with:

config.deploy_using(:testflight) do |tf|
  tf.api_token  = "YOUR_API_TOKEN"
  tf.team_token = "YOUR_TEAM_TOKEN"
end

Nifty. Need additional deploy strategies? Go ahead and fork the project and share it with the community.

[Update]:

Thanks, Luke, for pointing out some prior art from Hunter who lent the name to the project.

[Source on GitHub]


Have comments? Send a tweet to @TheChangelog on Twitter.

Subscribe to The Changelog Weekly – our weekly email covering everything that hits our open source radar.