16

I currently have a fairly manual process when releasing a new build in TestFlight:

  1. Download the additional devices text files from TestFlightApp
  2. Log into the Provisioning Profile
  3. Upload devices
  4. Update the Provisioning Profile to include the newly added devices
  5. Download the generated .mobileprovision file
  6. Click on the file to add to Xcode
  7. Product -> Archive, Share, Create IPA
  8. New Build in TestFlightApp
  9. Type up the release notes
  10. Upload (wait)
  11. Select testers to notify

Are there scripts or utilities that handle these steps for me? I don't mind a solution for part of these steps, as long as it reduces this process.

On the other hand, maybe I'm repeating steps I shouldn't be, or not doing things in an efficient manner.

gak
  • 32,061
  • 28
  • 119
  • 154
  • .Simply open the Provisioning Profile in textEdit and find and manually add add the UUId of the devices to be added. – itechnician Oct 08 '13 at 12:03

3 Answers3

8

There's a blog entry on developmentseed.org where it describes how to automate an archive build to be uploaded to TestFlight.

It doesn't include automatically updating devices in the provisioning profile, but MoProPro appears to be a command line utility to add new devices.

gak
  • 32,061
  • 28
  • 119
  • 154
3

Jenkins is a build server with plugins for xcode and TestFlight. It is a huge time saver if you have multiple projects to upload. Once the job is set up, it can be a one-click process to deliver the apps to TestFlight. With my set up, I even get a email when the build has completed the upload to TestFlight.

Note, it does not do the first 6 points of your question, but it does do the rest.

lindon fox
  • 3,298
  • 3
  • 33
  • 59
  • 3
    We use Jenkins as well. We commit the .mobileprovision file into source control and a script copies it into the correct place to be included in the upload to TestFlightApp. It also pulls the commit message and includes those is the release notes within TestFlightApp. – picciano Oct 02 '13 at 15:31
  • @picciano - impressive. I will have to look into copying you :) – lindon fox Oct 03 '13 at 01:08
  • Time to go with Jenkins, thanks @lindonfox, picciano – Rahul Gautam Feb 05 '14 at 05:23
  • 1
    I'd like to stress that this is a fantastic fix for steps 6 thru X. We use this on a daily basis. – ganders Dec 17 '14 at 15:42
1

Have you seen the nomad CLI tools for iOS development? They let you do things like:

Manage Devices

$ ios devices:add "iPad 1"=abc123
$ ios devices:add "iPad 2"=def456 "iPad 3"=ghi789 ...

Manage Provisioning Profiles

$ ios profiles:list

+----------------------------------+--------------+---------+
| Profile                          | App ID       | Status  |
+----------------------------------+--------------+---------+
| iOS Team Provisioning Profile: * | ABCDEFG123.* | Valid   |
+----------------------------------+--------------+---------+

Build & Distribute through TestFlight

$ cd /path/to/iOS Project/
$ ipa build
$ ipa distribute

And more!

All examples taken from the nomad documentation.

Edward Dale
  • 29,597
  • 13
  • 90
  • 129