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:

at this point the Organizer window should pop up:

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

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:

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

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

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

The final step is to complete the Distribution manifest information:

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:

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:

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:

Disclaimer:All data and information provided on this site is for informational purposes only. solarianprogrammer.com makes no representations as to accuracy, completeness, currentness, suitability, or validity of any information on this site and will not be liable for any errors, omissions, or delays in this information or any losses, injuries, or damages arising from its display or use. All information is provided on an as-is basis. solarianprogrammer.com does not collect any personal information about its visitors except that which they provide voluntarily when leaving comments. This information will never be disclosed to any third party for any purpose. Some of the links contained within this site have my referral id, which provides me with a small commission for each sale. Thank you for understanding.