Wireless Ad-hoc iOS Application Deployment on Dropbox

With the limited time of development, the application deployment can take a lot of our precious time over the year. I decided to improve this flow by automated the process from building, archiving and deploy to the various deployment environment. With the help of fastlane tools and my iOSDeploy script, I can deploy the application with a push of my finger.

My iOSDeploy repository

In order to automated the project deployment, fastlane’s gym and iOSDeploy must be installed. Both can be install using the command (within the project directory)…

sudo gem install gym
git clone https://github.com/spywhere/iOSDeploy iosdeploy

After installation finished, in the project directory would look like this…

Inside my example iOS project directory

Fastlane’s gym will be our build tool and iOSDeploy will be our deployment tool. If you already have your own build tool, you could only install iOSDeploy and any build configurations in this post could be skipped.

Next, before we configure the project, we have to setup the first run of iOSDeploy. Make sure you already have Dropbox app with Full Dropbox access (no need to be a production one) ready and then run…

After setup, you should see a .iosdeploy file created within your project directory (this file then can be shared to your co-worker to let them deploy the application without need to setup it again).

In order to test the setup, I have export the .ipa file to output folder and run…

As you can see at the bottom of the screen, a direct URL to the Dropbox file which generated by iOSDeploy (I will show you how it looks like later in the post).

Now we know that the deployment is successfully setup, next step we will automated the build, archive and deployment process by configure our project.


To make our deployment simpler by automated the process, first we need to add a new target…

Since my target is not going to build anything by Xcode (we use fastlane’s gym), I will choose Aggregate target type instead (you could use any of the target type, it is just my project not required for any particular target type).

I will named it “Deploy Example App” to make it easy to understand…

Now you should see your target showing up on the left hand side of the editor, next step is to configure the target.

We will add a Run Script Phase in the Build Phases tab, for me I will also add another Run Script Phase to build and archive the project using gym.

And now we should be ready to deploy our application, fully automated.


To deploy our application, switch the target to a newly created target…

And just build the project. We should see the message show that our build is success.

And that is it, we just deploy our application.


Now on the user side, when they want to install the application, simply send them an URL which generated by iOSDeploy. When they open, they should see a page similar to this one…

When they want to install application, just hit the Install button and the device will ask them to install…

Install confirmation dialog
Application has been successfully installed

And they now can run the application…

When you deploy another build, the iOSDeploy will regenerate the page that the latest build will be on top of the page.

And that is how the automatic deployment works with fast lane’s gym, iOSDeploy and Dropbox.