Introduction

If you are an iOS developer, like me, you probably have dealt with the tedious tasks of manually building, packaging, tagging, commiting and deploying your iOS applications to testflightapp.com. You are probably wondering if there is a better way to do so.

Well, you are absolutely right! This gem is going to make your life much easier. Here is what it does:

  1. Reads your XCode project info file to get your app version and build number

  2. Commits all your changes to the git repository

  3. Builds your project (or workspace)

  4. Packages your application into an IPA file

  5. Uploads the IPA file to testflightapp.com

  6. Tags your project with the version and build

  7. Increments your app build number and commits it to the repo

  8. Keeps a log of all your deployments to testflightapp.com in a FLIGHTLOG file

All that with a simple command:

$ testflight takeoff

Configuration

To setup your project with the deployment script, run the following command:

$ testflight checkin

This command will ask you a few questions that will guide you through a configuration process. If you don’t like being asked questions and prefer to do it manually, just create a .tesflight file in your iOS project folder and provide the following information:

build:
  developer_name:     # This must be your company name or your name as it appears in your .cer from Apple
  increment_bundle:   true  # If you want each deployment to increment your build number
git:
  commit_changes:     true   # if you are using git and would like to push changes before each build 
  tag_build:          true   # will tag each build in git
testflight: 
  api_token:          # Get it from https://testflightapp.com/account/#api
  team_token:         # Get it from https://testflightapp.com/dashboard/team/edit/
  distribution_lists: ["Internal", "Everyone"] # Configure your distribution lists at https://testflightapp.com

Execution

Once you have checked in (you only need to do it once per project), you are ready for takeoff. Go to your project folder and simple type:

$ testflight takeoff

Have a safe flight!

Contribution

Clone the repository, make any changes you like and send me a pull request.