Solarian Programmer

My programming ramblings

How to share a compiled iOS app ipa with your users for testing using Dropbox or your website

Posted on May 14, 2016 by Paul

In this post I will show you a simple way in which you can share your iOS applications wirelessly with your friends or users for testing purposes. The procedure requires that you have an iOS device and an Apple developer account. You will also need a secure (https) personal website or a Dropbox account. If you can test your app on your device, you can share it with other people.

Please note that this approach does not require any kind of jailbreaking and as far as I can tell, it is accepted by Apple. Alternatively, you can use TestFlight to invite people to test your beta application. Personally, I found the approach presented in this article easier to setup and use.

I assume that you have a working iOS application that you want to test with your friends or potential users. If not, open Xcode and create a dummy iOS project, in my case I have a project named TestApp. Make sure that you can run the application on your device.

From your Xcode menu, select Product → Archive:

Archive an iOS application

at this point the Organizer window should pop up:

Organizer window

if you don’t see the above window, open the Organizer from Window → Organizer:

Open the Organizer window

Select your application name and press Export from the right panel. At this point you will be presented with a list of options to export the app, chose Save for Development Deployment:

Select the export method for the iOS application

Next, you will have to select your Development Team, I’ve used my personal iOS developer account:

Select your development team

After the above, you should see the Device Support window, I’ve used Export one app for all compatible devices:

Select what kind of devices you want to support

On the Summary window, be sure to check Include manifest for over-the-air installation:

Summary page

The final step is to complete the Distribution manifest information:

Distribution manifest information page

At this point, you need to decide if you want to distribute the application through your website in which case you will need to have a secure, https, address. Or, if you don’t have a website or a SSL certificate on your website, you can use Dropbox.

If you use your own website create a folder on your website root, something like:

1 https://your_website_name/my_app

For Dropbox, open your Public folder and create a new folder inside, e.g. my_app. In my_app add an empty index.html file. Right click on index.html and select Copy Public Link, you should have something like this:

1 https://dl.dropboxusercontent.com/u/xxxxxxxx/my_app/index.html

where the xxxxxxxx is an identification number for your user account. You will use:

1 https://dl.dropboxusercontent.com/u/xxxxxxxx/

as the address of your website

Back to the Distribution manifest information now. The name of the app will be filled by Xcode, for the app url use something like:

1 https://dl.dropboxusercontent.com/u/xxxxxxxx/my_app/TestApp.ipa

be careful with the above because iOS, and probably your server too, is case sensitive. So TestApp.ipa is not the same with testapp.ipa.

Next, you will need two images, a PNG image of 57x57 pixels and a JPG image of 512x512 pixels. I’ve simply added two empty image files in my_app folder next to index.html. At this point your Distribution manifest information should contain three urls, something like this:

1 https://dl.dropboxusercontent.com/u/xxxxxxxx/my_app/TestApp.ipa
2 https://dl.dropboxusercontent.com/u/xxxxxxxx/my_app/image.57x57.png
3 https://dl.dropboxusercontent.com/u/xxxxxxxx/my_app/image.512x512.jpg

Press Export and be prepared to wait a bit … after some time Xcode will ask where to save your exported application and it will create a new folder with the ipa and manifest file. Copy these two files in my_app on your Dropbox folder or on your website.

Next, open index.html in a text editor and add a link with something like this, where you will replace the root url with your own:

1 <a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/u/xxxxxxxx/my_app/manifest.plist">Install Test1234</a>

At this point, all a user needs to do is to navigate to your index.html page from their iOS device and click on the link. You can, obviously, add more text and a style to the index.html file, maybe some instruction for the user of what to do once the app is installed and so on …

If you want to learn more about Swift and iOS programming I would recommend reading Swift Programming by Matthew Mathias and John Gallagher:

or iOS Programming by Christian Keur and Aaron Hillegass:


Show Comments