On 2/19/2014 TestFlight announced they would be dropping Android support on 3/21/2014 (http://www.androidpolice.com/2014/02/20/testflight-beta-testing-and-deployment-service-is-dropping-android-support-march-21st/), so for your procrastinators you have a few days to find something else. For most people building mobile applications you are building for more than one platform, so if you were using TestFlight you have a problem. The following is a quick comparison of all of your various multi-platform testing distribution solutions.
TestFlight
- Pros
- Free
- Supports iOS
- Allows you to create organizations to contain multiple apps (Company A contains App A Android, App A iOS, etc)
- Cons
- No longer supports Android
- Does not support Windows platforms
- I am mad at them for dropping Android support with less than a month notice
Ubertesters
- Pros
- Supports iOS
- Supports Android
- Allows you to create organizations to contain multiple apps (Company A contains App A Android, App A iOS, etc)
- Cons
- Does not support Windows (what the website says is not true, if you try to create a project your only options are iOS or Android)
- The free plan it not useful unless you plan on only have 1 app running on iOS and Android
- Requires that you implement their SDK to upload a binary
- Their Pro and Enterprise plans do not specify a price, which means it is probably expensive
- There is no Jenkins plugin, so you would have to create a script to handle uploading
HockeyApp
- Pros
- Supports iOS
- Supports Android
- Supports Windows Phone
- Supports Windows 8
- There is a Jenkins plugin for it (https://wiki.jenkins-ci.org/display/JENKINS/HockeyApp+Plugin)
- Cons
- For Windows, likely requires that you package it as an MSI so it will be extra work
- Does not allow you to create organizations to contain multiple apps (Company A contains App A Android, App A iOS, etc). You have to assign testers to individual apps.
- There is no free plan. You have to pay at least 9 a month.
TestFairy
- Pros
- Free
- Supports Android
- There isn’t a Jenkins plugin, but there are several command-line uploaders (including Gradle)
- Automatic App updating; if a new build is uploaded it will auto update on devices
- Cons
- Does not support iOS; would require two different accounts, two different apps, two sets of redundant users, and two different processes to deal with iOS and Android
- Does not support Windows or Windows Phone
- Does not allow you to create organizations to contain multiple apps (Company A contains App A Android, App A iOS, etc). You have to assign testers to individual apps.
HockeyKit
- Pros
- Cons
- Version 2 supports Android, but version 2 is not out yet
- Host it yourself
- It only needs PHP to run but it must be HTTPS
- Does not support Windows
- Does not allow you to create organizations to contain multiple apps (Company A contains App A Android, App A iOS, etc). You have to assign testers to individual apps.
- DIY = Lots of time
Other Considerations
I ended up going with HockeyApp myself for the following reasons:
- I didn’t want to have a different service, different app, and different set of users for every platform I target (iOS, Android, Windows 8, Windows Phone 7, Windows Phone 8 )
- I didn’t want to have to go about implementing an SDK (Ubertesters) in every single one of my apps past, present, and future just to be able to upload