Rubymotion and Apple TestFlight

Apple finally released TestFlight and now allows up to 1000 beta tester to be invited to test your app. Before then, I’ve been using the original TestFlight service. With Rubymotion setting up the original TestFlight service has been pretty simple wrt sending out builds. However, now that I finally got my feet wet with Apple’s TestFlight, the experience is much different.

Thinking nothing of the process and without any research, I decided to just jump right in. Having successfully distributed apps via the original TestFlight, I thought I would be good to go.

$ bundle exec rake archive:distribution

This was my first mistake. There are couple things you need to do before creating your archive. Apple has some good documentation that outlines the process for using their testflight: Beta Testing The App. One of the important thing to note here is that I missed was :

  • Generate a new App Store Distribution profile containing the beta entitlement to distribute builds via TestFlight.

This is simply accomplished by going to Apple’s developer portal and under Provisioning Profiles > Distribution, you edit and then generate the profile again. If you have not yet created one, its pretty straightforward to do so.

Once you download this file, make sure you update your Rakefile in your Rubymotion project to point to this new provisioning profile.

app.provisioning_profile = '/path/to/your/profile.mobileprovision'

And finally make sure to add the beta-reports-active entitlement. Without this, Rubymotion won’t add the entitlement to the Entitlements.plist file.

app.entitlements['beta-reports-active'] = true

Once you add that, rebuild the archive distribution and upload via Application Loader. You’ll then be able to submit the build for Beta Test Review. Enjoy!


Now read this

Starting a new Rails project using Docker

If you’ve been considering using and learning Docker for a while, I highly suggest to just do it. It is a great way to adhere to the 12 Factor App methodology. Docker is a method of containerization, this gives developers an easy way to... Continue →