We will host it directly on S3, without spinning up machines or configuring http servers. Throughout this tutorial, we are going to use an application called Dishero as an example. Generate an html file with a special Download link, pointing to the plist file above.Generate a special plist xml file, referring to the IPA above.Upload the IPA file to a place where it can be downloaded.To make the ad-hoc distribution work, one must: Thus, there is a need to bake an in-house distribution system. There are services out there that try to automate the ad-hoc distribution process, but sometimes it is not desirable or even possible to use them. We all care about security and greatly appreciate the fact that iOS platform is much more secure than its main competitor, but it is still a problem that needs to be solved. Why?Įvery iOS developer at some point in their life is challenged with a task to distribute their awesome app to a group of loyal beta testers. It is less flexible, if the look and feel of the html needs to be tweaked, the plugin itself needs to be copied and modified. The new Fastlane solution is much easier to implement than the original one, yet it comes with a price. In the following article we will only focus on one specific task – creating an Ad-Hoc distribution on Amazon S3, and will use one Fastlane plugin for that purpose, called aws_s3.
If you are not familair with Fastlane, you should definitely spend some time to get familiar with it, and see how it can help you automate your iOS and Android builds. However, since its publication, Fastlane gained a lot of popularity and gathered quite a following around it, including the ecosystem of plugins. The original tutorial achieved the desired effect using s3cmd and a bunch of bash scripts.
This tutorial was partly base on Integrating Fastlane with multiple target for a single iOS project by SANDEEP MUKHERJEE and on fastlane Tutorial: Getting Started By Lyndsey Scott from there you can read more about Gymfile and do_everything loop written in Fastfile.This tutorial is a revised tutorial we’ve published earlier, called iOS Ad-Hoc distribution using Amazon S3. In conclusion, there’s no doubt that Fastlane is 100% worth to use. To be honest it’s saved me even more because I can’t perform action after action immediately. Run all targets: fastlane do_everything ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Īfter Fastlane finished to run in my real environment, which includes four targets, I got this message in console: fastlane.tools just saved you 92 minutes! ? Run a specific target: fastlane do_everything - env TargetName Our Gimfile is configurated to create all *.ipa files in this directory. Inside Fastlane directory create a directory called “builds”
Gymfile - is specifiled where and how to create a *.ipa files.ĭownload Fastfile and Gymfile from my GitHub repo and place them into fastlane directory.ħ. They know to get a scheme and bundle identifier from our files.įastlane file - is a major Fastlane file that builds and upload to TestFlight for all targets. The context of rest two files Fastfile and Gymfile are completely generic for all projects. To upload builds to TestFlight, you need to generate an application specific password. To use defined variable: app_identifier(ENV)ĥ. Open the Appfile and change the line: app_identifier(“your bundle identifier”)
Fill up both files accordingly, each with your unique scheme name and bundle of each App target: SCHEME = “schema name App1” BUNDLE_IDENTIFIER = “Bundle identifier App1”