Due to some maintenance issues, this service has been switched in read-only mode, you can find more information about the why

and how to migrate your plugin documentation in this blogpost

Skip to end of metadata
Go to start of metadata

Deprecated: This plugin has been removed from the Jenkins Update Centre

The testflightapp service no longer exists.
Archived versions of this plugin remain available for download.

Plugin Information

No information for the plugin 'testflight' is available. It may have been removed from distribution.

This plugin uses the Testflight upload API to allow for uploading APKs/IPAs (and their optional DSYMs) to www.testflightapp.com


If you do not specify the ipa/apk/dsym file(s) they are searched for automatically in the workspace.
The testflight install and config links are exposed as environment variables (TESTFLIGHT_INSTALL_URL and TESTFLIGHT_CONFIG_URL).

If you run into strange issues, you might want to enable the debug parameter (under the advanced section) to troubleshoot your problem.

Upgrade guide

Sometimes the behavior or configuration has to change:

  • 1.3.6, testflight secrets have been moved to Jenkins global configuration. The previous settings are kept inside the job configuration until the job configuration is saved again.
  • 1.3.7, proxy configuration has been moved to Jenkins global configuration. The previous settings are kept inside the job configuration until the job configuration is saved again.
  • 1.3.7, if the dsym element is left empty, when found, dSYM files are now automatically updated for any IPA to upload.

Known issues

type key summary assignee reporter priority status resolution created updated due

Data cannot be retrieved due to an unexpected error.

View these issues in Jira


Version 1.3.9 (Aug 1 2013)

* support multiple upload files per team (JENKINS-17592)
* find files with relative paths (backward compatibility fix)
* display proper upload speed again in console

Version 1.3.8 (May 22 2013)

* support multiple links (JENKINS-18045)
* properly fail the build when no file was uploaded (probably misconfigured) (JENKINS-18044)

Version 1.3.7 (May 22 2013)

* deprecated proxy configuration in favor of Jenkins overall proxy configuration
* support wildcards in uploads (JENKINS-17592)
* improved inline documentation

Version 1.3.6 (May 15 2013)

* move testflight tokens to global configuration
* bugfix: sometimes the files to upload weren't found by the uploader (JENKINS-17563)
* bugfix: NPE in saving (JENKINS-17313)

Version 1.3.5 (Mar 14 2013)

* added a debug parameter for troubleshooting.

Version 1.3.4 (Mar 13 2013)

* support deploying APKs

Version 1.3.3 (Feb 11 2013)

* fix encoding issue in changelog message
* automatically find all IPAs if none specified

Version 1.3.2 (Jan 31 2013)

* expose the testflight install and config links as environment variables as TESTFLIGHT_INSTALL_URL and TESTFLIGHT_CONFIG_URL environment variables (https://github.com/jenkinsci/testflight-plugin/pull/8)
* all information passed to the testflight API is expanded (lists, api and team tokens, buildnotes)
* fixes related to master/slave setup
* hide secret tokens in GUI
* added an option to append the build changelog to the build notes
* fixed an encoding issue in notes field.
* log upload speed transfer

Version 1.3.1 (Jan 12 2012)

* Added DSYM upload support
* Works with Jenkins Slaves
* Proxy support
* Default IPA upload

Thank you for the pull requests!

Version 1.2 (Sep 28 2011) 

* Fixing configured items not reappearing when editing again

Version 1.1.1 (Aug 27 2011)

* Fixing metadata to show the proper name in the update list.
* Fixing wiki link

Version 1.1 (Aug 26 2011)

* Initial version
* Will show Configure and Install links on the build status page
* Will show latest install links on the project page


  1. Unknown User (ringleader3)

    I am experiencing the same issue as here:


    any chance you guys could look into it?  I checked out the code and it seems correct, but I'm no JAVA expert.

  2. Unknown User (parkej60)

    Was just wondering if it would be difficult to have the build notes have a environment variable or a parameter so that they could be passed in if we wanted to alter them on a per build basis? Great plugin!

  3. Unknown User (parkej60)

    Having issues uploading APK files to test flight. Have tried entering a specific path to the APK, but console log just states that it can't find the file. Works fine if we roll back to a previous release of the plug-in. See log below.BUILD SUCCESSFUL
    Total time: 37 seconds
    Uploading to testflight
    No file to upload was found with paths search criteria: /Users/jenkins/.jenkins/jobs/AccentLocal-Android-DEV/workspace/AccentLocal/bin/MainActivity-release.apk
    Build step 'Upload to Testflight' marked build as failure
    Finished: FAILURE

    1. Unknown User (jamelle)

      James, I am getting the same error you are. I thought it was an API error, but even after I made sure the correct upload API key and team API key were set globally I am still getting this error.

  4. Unknown User (mhicauber)

    Hi all,

    How am I supposed to put the testflight token in the global configuration ? Is there some documentatio anywhere about this ?

    Thank you,


  5. Unknown User (dalewking)

    It would be nice if the plug-in could keep track of what the last successful version was that was uploaded (the git SHA value in the case of git SCM) and make that available to the build as an environment variable. The scenario is that I want to check if anything significant has changed to warrant uploading to TestFlight. I use the Flexible Publisher plugin to make uploading conditional. To do this check I need to check the git log as I have a flag I can put into the check in comment to say don't upload to TestFlight. The log I check is from:

       git log ${GIT_PREVIOUS_COMMIT}..${GIT_COMMIT}

    That works fine normally, but if a build fails for some spurious reason, and I do a manual build, those values are the same as nothing changed in SCM for this build, though it has changed since the last successful build. The plugin itself should also use this for determining the commit log that it appends to the build notes, because in this same scenario it said there were no changes.

  6. Unknown User (theduke)

    This may not be a plugin specific question, but is there any way to override the global proxy settings defined in master?
    I have a windows master behind a proxy and a OSX slave without a proxy. However the testflight upload request always tries to access the proxy which fails.
    If i remove the global proxy settings in master it works, however this causes jobs on the master node to fail.

    I've tried by setting the environment variables for the OSX node, but so far no success. Can anyone give me a hint? Is this even possible?

  7. Unknown User (hthakkar)

    Is there any configuration option using which I can override the IPA file name? Currently for my iOS app, the IPA file is automatically named in a format CFBundleShortVersionString (CFBundlerVersion).ipa and I would like to include more information in the IPA file name for example, whether it's a release build or a development build and intended for developers or QA.