App deployment can be frustrating and time consuming. At LookLive, we have optimized this process using a tool called Fastlane. In this talk, I will demonstrate how we did it and you'll learn how you can set up Fastlane for your own projects.
4. www.looklive.com@donnywals
Fastlane to the rescue
fastlane lets you define and run your deployment pipelines for different environments. It helps you unify
your app’s release process and automate the whole process. fastlane connects all fastlane tools and
third party tools, like CocoaPods and Gradle.
9. www.looklive.com@donnywals
Feature-packed
• A range of built in actions (incrementing build
numbers, pushing to git, tagging your repo,
crashlytics and more)
• A lot of integrated tools (sigh, gym, scan, pilot and
more)
10. www.looklive.com@donnywals
Initial goals for LookLive
Finalize code
Hurry to write some tests
Run tests
Upload to Crashlytics
Update release notes
Upload to iTunes Connect
Wait…
Update (localized) app info
Update (localized) screenshots
Submit build
Wait for review…
Archive build
Update build number
Update release notes
14. www.looklive.com@donnywals
Ingredients
• fastlane (install through gem install fastlane)
• scan (part of fastlane, used for testing)
• gym (part of fastlane, used for building)
• sigh (part of fastlane, used for downloading certificates)
• crashlytics (function in fastlane, uploads to Crashlytics beta)
• pilot (part of fastlane, uploads to iTunes Connect)
• deliver (part of fastlane, uploads metadata)
15. www.looklive.com@donnywals
Ingredients
• fastlane (install through gem install fastlane)
• scan (part of fastlane, used for testing)
• gym (part of fastlane, used for building)
• sigh (part of fastlane, used for downloading certificates)
• crashlytics (function in fastlane, uploads to Crashlytics beta)
• pilot (part of fastlane, uploads to iTunes Connect)
• deliver (part of fastlane, uploads metadata)
16. www.looklive.com@donnywals
Ingredients
• fastlane (install through gem install fastlane)
• scan (part of fastlane, used for testing)
• gym (part of fastlane, used for building)
• sigh (part of fastlane, used for downloading certificates)
• crashlytics (function in fastlane, uploads to Crashlytics beta)
• pilot (part of fastlane, uploads to iTunes Connect)
• deliver (part of fastlane, uploads metadata)
17. www.looklive.com@donnywals
Ingredients
• fastlane (install through gem install fastlane)
• scan (part of fastlane, used for testing)
• gym (part of fastlane, used for building)
• sigh (part of fastlane, used for downloading certificates)
• crashlytics (function in fastlane, uploads to Crashlytics beta)
• pilot (part of fastlane, uploads to iTunes Connect)
• deliver (part of fastlane, uploads metadata)
18. www.looklive.com@donnywals
Ingredients
• fastlane (install through gem install fastlane)
• scan (part of fastlane, used for testing)
• gym (part of fastlane, used for building)
• sigh (part of fastlane, used for downloading certificates)
• crashlytics (function in fastlane, uploads to Crashlytics beta)
• pilot (part of fastlane, uploads to iTunes Connect)
• deliver (part of fastlane, uploads metadata)
19. www.looklive.com@donnywals
Ingredients
• fastlane (install through gem install fastlane)
• scan (part of fastlane, used for testing)
• gym (part of fastlane, used for building)
• sigh (part of fastlane, used for downloading certificates)
• crashlytics (function in fastlane, uploads to Crashlytics beta)
• pilot (part of fastlane, uploads to iTunes Connect)
• deliver (part of fastlane, uploads metadata)
20. www.looklive.com@donnywals
Ingredients
• fastlane (install through gem install fastlane)
• scan (part of fastlane, used for testing)
• gym (part of fastlane, used for building)
• sigh (part of fastlane, used for downloading certificates)
• crashlytics (function in fastlane, uploads to Crashlytics beta)
• pilot (part of fastlane, uploads to iTunes Connect)
• deliver (part of fastlane, uploads metadata)
21. www.looklive.com@donnywals
The develop lane
increment_build_number
commit_version_bump
sigh(development: true)
scan(scheme: 'LookLive')
gym(scheme: "LookLive")
crashlytics(
crashlytics_path: ‘:path_to_crashlytics:’,
groups: 'b2c-team',
api_token: ':secret:',
build_secret: ‘:secret:’,
notes: File.read("release_notes")
)
clean_build_artifacts
add_git_tag
push_to_git_remote
Because I always forget
Download certificates,
test (UI and unit) and build
Send beta to Crashlytics
for dev testing
Clean up, tag the repo
and push to git