I recently went through the process of creating an installable image of an iPhone mobile app (an .ipa file) that beta testers could load onto their test devices. The process involved quite a few steps, but both Appcelerator and Diawi.org had decent documentation to walk me through it. However, I found a couple places where more details would be helpful.
This article augments their documentation with information that I hope helps you successfully create a distributable iPhone app for your beta testers. This article assumes you have Appcelerator’s Titanium Studio installed on your Mac. I used Titanium’s build 22.214.171.124410281727. You also need an Apple Developers account.
Before we get started, a quick note on Diawi.org. My team wanted to get our beta testing started quickly. We looked at TestFlight and Diawi.org. We decided to go with Diawi.org because of its simplicity.
There are two major steps in order to create an .ipa that can be installed on beta tester’s iOS device. Step one is to create the .ipa file. Of course this file has the mobile app’s code, but it also contains an embedded list of devices allowed to install the .ipa. Step two is making that .ipa file available for download.
Appcelerator’s “Deploying to iOS Devices
” does a good job of walking you through the process to create the .ipa file. I got tripped up in just two places. The first one was in step 7 of Create an App ID
. The instructions say to use a reverse-domain style, and this is important, but more specifically I found I had to use the exact string as our app’s package. When I tried a different string I wasn’t able to create the .ipa. So if your app is called MyGreatApp and its reverse domain is com.example.MyGreatApp
that’s what I recommend you use in this step.
The second place I hit a snag was in Titanium Studio, while trying following Build your app, embed the profile with the app's bundle
. The document says to set the view to Project Explorer, then select Run from the Launch Mode and select iOS Device as the Target. I couldn’t find the Launch Mode. I started in the Project Explorer view. In the top banner I selected Run
. From the drop-down list I selected Run Configurations…
This launched a pop up called Create, manage and run configurations
. I expanded the Titanium iOS Device
list and selected the one for my project. From that point on the steps aligned with the Appcelerator’s document.
Near the end of the document is the Installing apps to remote devices
. This section mentions TestFight, Diawi.org and other options. We went with Diawi.org.
Diawi.org makes it about a simple as possible to distribute the .ipa. They provide a form where you upload your .ipa. They then generate a unique URL for downloading the .ipa. You email or otherwise inform your beta testers of the URL. They use Safari on their iOS test devices to access the URL. Clicking on it will download the app. I didn’t see any notification with Safari that the installation was done so after a minute I simply minimized Safari and saw my app’s icon on my device’s home screen.