If you’ve been using the TestFlight website to upload and distribute test builds of your Adobe AIR apps then you’ll probably be aware that the service has moved. Apple acquired TestFlight in February and have now integrated it within iTunes Connect. So here are a few useful tips for uploading your app for TestFlight beta testing within iTunesConnect.

Download Adobe AIR 16+

Apple now insist that all apps submitted to the App Store must include 64-bit support. This restriction also applies to any builds you upload to iTunes Connect for beta testing.

Thankfully Adobe AIR 16 introduced support for 32-bit and 64-bit iOS platforms. The AIR 17 beta SDK has improvements over AIR 16, allowing it to compile for both platforms in parallel, cutting packaging times by fifty percent.

I’ve actually been using AIR 16 for a current project and its builds can be uploaded for beta testing without any problems. But you might as well take advantage of the improved compilation times provided by the AIR 17 beta SDK.

Distribution Certificate and Provisioning Profile

The TestFlight website let you upload apps that had been built with a development certificate. However, in order to submit a beta build via iTunesConnect you’ll need to generate and use a distribution certificate. This can be done by generating an App Store and Ad Hoc production certificate from the iOS Dev Center.

You’ll also need to create a Distribution Provisioning Profile and associated your distribution certificate and your app’s App ID with it.

Update your App Version Number

Before making a build and submitting it, you’ll need to update your app’s version number. This can be done by editing your application descriptor file (-app.xml). Simply increment the value of its versionNumber tag:

<versionNumber>0.0.3</versionNumber>

You’ll need to increment this value every time you submit a new build for beta testing. If you don’t, then the submission will be rejected for having a version number identical to an existing build.

Beta Entitlements

Staying within your application descriptor file, you’ll also need to set the correct beta entitlements. Add the following XML:

<Entitlements>
  <![CDATA[
    <key>get-task-allow</key>
    <false/>
    <key>beta-reports-active</key>
    <true/>
  ]]>
</Entitlements>

It’s important you remember to do this. If you submit your build to iTunes Connect without these entitlements, it will be accepted, but testers won’t be able to gain access to it. Worse still, you can’t delete builds from iTunes Connect, leaving you with no choice but to increment your app’s version number and submit a brand new build. Remember, once a build has been successfully submitted you can’t upload another build that has the same version number.

NOTE: If you’re making a build for yourself using a development certification and development provisioning profile then you’ll need to remove the entitlements XML from your application descriptor file. This is a nuisance but the easiest way to deal with it is simply to comment-out your entitlements XML when you don’t need it, and then remove the comments when you’re creating a beta build for upload to iTunes Connect.

Here’s how your application descriptor file should look after commenting out the entitlements:

<!--<Entitlements>
  <![CDATA[
    <key>get-task-allow</key>
    <false/>
    <key>beta-reports-active</key>
    <true/>
  ]]>
</Entitlements>-->

Upload using Application Loader

The final step is to upload your builds. If you’ve been using the TestFlight website you’ll be used to simply dragging and dropping your files onto a web page. To submit your content to iTunes Connect you’ll need to use the latest version of Application Loader. You can download Application Loader from the iTunes Connect website.

I hope all that was of some help to you guys.

  1. Regarding development vs. release builds, I recommend having two application descriptor files. That way you don’t have to mess with it again and have potential issues uploading a build or debugging.

  2. Does Apple’s Application Loader work on Windows, or is it only available to upload the .ipas from a Mac?

  3. As far as I’m aware, Application Uploader is only available on Mac.

    Christopher (Author)
  4. Hello, thanks for the article. How about the build number in the new testflight system? I have seen some cases with xcode build: The version number is still the same but there are more than one build number in that version listing. The version numbers dont have to be increased. Eg. Version 1.1.2 build 102, 103, 104; v1.1.3 build 105 106 107 108. That would help a lot in our working flow. Unfortunately I can’t find similar config in air application. The build is increased automatically in xcode.

    Joe
  5. Hi Joe. The AIR 18 beta solves this by letting you create a separate build number and version number. You can find more details in my latest post at: http://www.yeahbutisitflash.com/?p=7642

    Christopher (Author)
  6. Are you able to leave the beta entitlement tags in the xml descriptor files when going live (non beta testing)??? Or does those tags need to be commented out when going live?

    MeCopius
  7. Hi. I’m not 100% sure but I’d remove the beta entitlements just to be safe.

    Christopher (Author)
  8. Hi Chris, I just found something that may be useful for someone else.
    I was getting that error from Application Loader:
    Invalid Code Signing Entitlements

    I had everything in order, except for the App ID Identifier

    I have this so I can test all sorts of name spaces
    com.mywebsite.*
    This works fine except when you want to upload and test with TestFlight.

    You need to be explicit with the App ID Identifier association when you create your Provisioning Profile
    com.mywebsite.myapp

    It was driving me crazy and now it works.

    Maybe I am late to the party but I hope this helps someone else.

    – Patrick

    Patrick Mullady
  9. Thanks very much for the info Patrick. I’ll try and find some time to update the post with your information. Thanks again!

    Christopher (Author)