When developing iOS apps in monotouch, you can distribute beta versions to your testers. They get installed on your user’s iOS devices over the air, bypassing the app store. But getting monotouch apps to work correctly with testflight is quite an art. You will need to work in:
- Monotouch
- www.testflightapp.com
- The Apple iOS Developer Center
- XCode
… all at the same time. Let’s get on with it…
Step 1, set up a Test Flight account at www.testflightapp.com. Build the app in monotouch (setting the target to Ad Hoc, and do Project/Publish to Test Flight) to create the app and the build in Test Flight. Create a number of testers in Test Flight, and invite them to register. As they do, they will not be able to access the app yet, but you will get a list of device id’s for the iPads and iPhones that your testers are using.
Step 2, in the iOS Developer Center, go to the iOS Provisioning Portal. Register the devices in the Devices tab. Now go to the Provisioning Profile tab, and then to Distribution. Create a new profile, called ‘AppTest’, or something similar – set Ad Hoc, and add the devices you want to enable for testing. Note that you are limited to 100 devices per iOS developer account, so choose carefully who you allow in.
Step 3, download the profile, and import it into… Xcode. Start Xcode and drag the downloaded profile into Xcode’s taskbar icon. This will add the profile to the Devices tab of the Explorer.
Step 4, back into Monotouch – set the build type to Ad Hoc; go to the project properties and select Build/iPhone Bundle Signing. Set the identity to Distribution, and the Provisioning Profile to your downloaded profile (which thanks to your tweak in Xcode, should now appear in the list. Build with Project/Publish to TestFlight to reupload your app (with the new provisioning profile) to TestFlight.
Step 5, tell your users to go to www.testflightapp.com on their iOS device; this should now set up a Testflight icon on their device, which will offer them your newly uploaded build of your test app. Touch wood, they should now be able to run it successfully.
Note: Strictly, you should be able to upload the new TestApp provisioning profile to an already uploaded app build, but in our experience, that does not work properly. You need to build the provisioning profile into the build that you upload to Test Flight. Unfortunately, that means that if you want to add a new test user, you need to go through the whole process of downloading and applying a new provisioning profile, and rebuilding and reuploading the app with it.