This is a Testflight module for Appcelerator Titanium
Objective-C Python JavaScript
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Appcelerator Titanium TestFlight Module for iOS

This is a TestFlight module for iOS actively developed by Torsten Stelling and formally developed by Rick Blalock and Matt Apperson. Also needing to be thanked is the core TestFlight development team who assisted in the making of this module. Without their help this wouldn't have been possible.

TestFlight makes it easy to upload and distribute iOS builds over-the-air to your teams of testers and developers.

The original repository url is


  • Sessions - Discover how testers are using your application. Watch as they progress and take unexpected turns.
  • In-App Questions - The most effective way to get tester feedback. Get the answers you need by asking questions the moment a checkpoint is passed.
  • Remote Logging - NSLog(@"All your logs are belong to us"); //No extra work: NSLogs are instantly attached to your session and crash reports.
  • Crash Reports - Reported in realtime, with environment snapshots and full session activity.
  • Checkpoints - Place checkpoints throughout your app to see how far testers are getting, confirm which areas are popular and reveal ones that need more testing.
  • In-App Updates - Prompt testers to install the latest version of your app. This is the easiest way for your testers to take advantage of installing on the fly.


All binary releases are included also in this module. See the releases folder.

Supported/Tested Platforms

This module is only tested against the latest Titanium Mobile SDK's. It is not, nor will it ever be tested against the Titanium Mobile SDK's from the Continuous Integration server (aka CI Builds).

TestFlight Module Version TestFlight SDK Version Titanium Mobile SDK Version
1.0 1.0 1.8.0+
1.1 1.0 1.8.0+
1.2 1.2 2.1.4+
2.0 2.0 2.1.4+ / 3.0+
3.0 (current) 3.0 3.2.0+

Basic Usage


// Pull in the Module
var testflight = require('ti.testflight');"module is => " + testflight);

// Set the app token here (REQUIRED)
testflight.takeOff('YourAppTokenHere',true); // for demo code

var tabGroup = Titanium.UI.createTabGroup();

var win = Titanium.UI.createWindow({  
    title: 'TestFlight Module',
var tab1 = Titanium.UI.createTab({  
    icon: 'KS_nav_views.png',
    title: 'TestFlight',
    window: win

var data = [
	{ title: 'Checkpoint 1', uid: 1 },
	{ title: 'Checkpoint 2', uid: 2 },
	{ title: 'Checkpoint 3', uid: 3 },
	{ title: 'Checkpoint 4', uid: 4 }

var table = Ti.UI.createTableView({ data: data });

table.addEventListener('click', function(_event) {
	// Set a checkpoint up here
	testflight.passCheckPoint('Checkpoint' + _event.rowData.uid);

	var newwin = Ti.UI.createWindow({ title: _event.row.title });

	var label = Ti.UI.createLabel({ text: 'Checkpoint ' + _event.rowData.uid, textAlign: 'center' });
	var btn = Ti.UI.createButton({ title: 'Feedback' });

	btn.addEventListener('click', function() {
		// Submit some feedback
		testflight.submitFeedback('Text from your own custom form');

	newwin.rightNavButton = btn;, { animated: true });




Q: I see a warning dialog, that my App Token was not detected, but the library is correct implemented. Is this normal?

A: Yes, when you see this dialog, please click on Ignore and Continue.


How to Update from DamageStudios module

Replace the functions with new function names.

old function new function
token takeOff
checkpoint passCheckPoint
feedback openFeedbackView
customInfo addCustomEnvironmentInformation
remoteLog log

log uses 2 parameters and you need to put "INFO", in front of the first parameter to replicate the old behaviour.

How to Help

  1. Go to github and click the “fork” button.
  2. git clone
  3. cd testflight-module
  4. Make your changes/edits
  5. git status
  6. git commit -a
  7. git push
  8. go back to github and click the “pull request” button.


See LICENSE file.


v1.0 - 2012/4/30

  • uses TestFlight 1.0
  • renamed most functions to the function names of the TestFlight SDK
  • added sdkVersion
  • added setDeviceIdentifier as independent call
  • fixed some small things like parameters
  • updated documentation

v1.1 - 2012/5/22

  • removed setDeviceIdentifier
  • removed remoteLog
  • added second parameter to takeOff for udid function
  • added log function with category and value parameter

v1.2 - 2013/2/11

  • updated Testflight SDK to v1.2
  • fixed small compiling error in sdkVersion

v2.0 - 2013/8/30

  • updated Testflight SDK to v2.0
  • remove SubmitFeedbackView, since it is not existent any more
  • added first faq item

History of the module

The original module was created in 2011 by Damage Studios. I started to update it with my own code and changed the function calls to names i was used to from the co.saiten.ti.testflight module. At last i changed the GUID to my own.

Since i changed really much in here, i wanted to share my works with you here. I try to update this module as often as TestFlight updates it's SDK.


Copyright (c) 2011 by Damage Studios LLC. All Rights Reserved.

Copyright (c) 2012-2013 by Torsten Stelling. All Rights Reserved.

Appcelerator is a registered trademark of Appcelerator, Inc. Appcelerator Titanium is a trademark of Appcelerator, Inc.

TestFlight is a registered trademark of TestFlight