TestFlight Beta Testing on iTunes Connect - beta entitlement

Anyone able to test builds using TestFlight? I’m getting a message saying “To use TestFlight Beta Testing, this build must contain the correct beta entitlement. For more information, see the FAQ.”

You need to create or re-generate a distribution (yes, distribution; not adhoc… The same kind of profile you use to submit to the app store) provisioning profile, sign your app with that, then upload your app with Application Loader and then head on over to your apps page on iTunes connect and hit the pre-release tab and chose and inform your testers there.

The process is very tightly integrated, now that Apple owns Testflight

Hi euphoriacorona,

first, thanks for the quick response. Indeed I created a distribution profile, signed my app with it, and uploaded the zip created by the SDK to the app store. Still getting that message unfortunately. Have you personally had success seeing the “invite” link?

Thanks!

Yaron

Apparently while Corona HAS the entitlement in the embedded.mobileprovision file within the app, looking at the Entitlements in the iTunes Connect side - it’s clearly not there, meaning there must be something wrong with the build process on Corona’s end.

Also, com.apple.developer.team-identifier is missing

Got it working on iOS8 by re-signing using AirSign. 

Initial requirements:

  • Have a non-wildcard app defined
  • Have a new app store distribution provisioning profile (created after iOS 8 was released)

Steps:

  • Build in Corona
  • Move the app into a directory called Payload 
  • Compress Payload and rename to <yourappname>.ipa
  • Open in AirSign, re-sign and create app for App Store
  • Upload to app store using Application Loader

Has anyone got this working with just vanilla Corona? 

I’m running into the same issue.  Was hoping that anyone has been able to get this working in “vanilla” corona.  Have you had any luck?  I can see that the beta entitlement is indeed set in my provisioning profile, but it doesn’t seem to be the case in the version that corona is using (or it is just leaving that info out).

 

I tried using Airsign last night and that didn’t work for me either - will try again later

Gnnehh! Forgot to hit the “codesign” button when using Airsign. Remembering to hit that makes it work.

What is Payload? I just uploaded my app in iTunes Connect and got the error about beta entitlement so I can’t use Test Flight yet. I am following your instructions above and downloaded Air Sign. I have a new app store distribution provisioning profile and my app is built. What is this directory called payload? And are you using AirSign as an alternative to TestFlight? I see TestFlight requires Apple Review (have no idea how long that will take) before your external testers get access to the app.

Payload is just a folder. The .ipa file format basically consists of a zip file made of a compressed folder called Payload containing the .app file. Airsign is a 3rd party codesigning tool. It redoes the signing that Corona does when it builds your project for iOS, but it somehow does something slightly different that supports the Apple Testflight Beta testing.

Here’s the bash script that I use to make .ipa files from the .app file Corona produces when it builds an app. 

dir=$(dirname {query}) cd $dir mkdir ./Payload mv {query} ./Payload file=$(basename {query} .app) zip -r $file.ipa ./Payload

{query} is a parameter passed in by Alfred and is the path to the .app file. So usually /User/user/Desktop/MyGame.app. If you replace all the references to {query} with the path to your .app file and run it in Terminal, you should wind up with a .ipa file.

Edit: in fact I think the script can be made Alfred neutral by doing the following:

path="/Users/username/Desktop/MyGame.app" dir=$(dirname $path) cd $dir mkdir ./Payload mv $path ./Payload file=$(basename $path .app) zip -r $file.ipa ./Payload

If you install Airsign, set it up, and then open your .ipa file with it, you can find options to sign the .ipa with the AppStore provisioning profile you were using to build with Corona. Do that, then there’s a button in Airsign marked ‘Save as .ipa’, click that and then upload the new .ipa file made by Airsign using the Application Loader as usual.

Thanks you so much! I’m a newbie so I need a little more detail on where to put this script.

Okay, so I created a folder in my documents called “payload”. Do I open the .app file “show contents in folder” and then put this script somewhere in the .app file and save?

Ah, sorry for the confusion. The script just automates the creation of the .ipa file. You can ignore it if you want. All you need to do is build your Corona project then create a new folder called Payload. Copy your .app file into the Payload folder then compress the folder (right click on it and select compress). Then rename the zip file which doing so will have created to GameName.ipa. You’ll probably need to do this using the Info pane (right click -> get info), and you’ll be asked if you want to change the extension. Click yes and you’ll be ready to get Airsign to sign it for you. 

Thank you so very much! Everything worked perfectly and my app is in iTunes Connect now ready for Beta App Review. Hopefully, the review isn’t too long so my external testers can get busy.

Thanks again,

You need to create or re-generate a distribution (yes, distribution; not adhoc… The same kind of profile you use to submit to the app store) provisioning profile, sign your app with that, then upload your app with Application Loader and then head on over to your apps page on iTunes connect and hit the pre-release tab and chose and inform your testers there.

The process is very tightly integrated, now that Apple owns Testflight

Hi euphoriacorona,

first, thanks for the quick response. Indeed I created a distribution profile, signed my app with it, and uploaded the zip created by the SDK to the app store. Still getting that message unfortunately. Have you personally had success seeing the “invite” link?

Thanks!

Yaron

Apparently while Corona HAS the entitlement in the embedded.mobileprovision file within the app, looking at the Entitlements in the iTunes Connect side - it’s clearly not there, meaning there must be something wrong with the build process on Corona’s end.

Also, com.apple.developer.team-identifier is missing

Got it working on iOS8 by re-signing using AirSign. 

Initial requirements:

  • Have a non-wildcard app defined
  • Have a new app store distribution provisioning profile (created after iOS 8 was released)

Steps:

  • Build in Corona
  • Move the app into a directory called Payload 
  • Compress Payload and rename to <yourappname>.ipa
  • Open in AirSign, re-sign and create app for App Store
  • Upload to app store using Application Loader