Living in the Fastlane

Living in the Fastlane

If you need to submit more that one app to App Store or Google Play store, this talk is for you! Here is how we automated our App Deployment Pipeline. We can now submit ~100 apps to the App Store at Victorious with a single command. You'll learn how to use Fastlane so you can use it for your needs too.

Presented at the CocoaHeads Los Angeles meetup http://www.meetup.com/CocoaHeads-LA/events/230662812/
Video Recording: https://www.youtube.com/watch?v=pz3gVnIlpyI

36b118e795c80c058d942b7af047ea67?s=128

Alexander Tamoykin

May 12, 2016
Tweet

Transcript

  1. LIVING IN THE FASTLANE ALEX TAMOYKIN & MICHAEL MONTGOMERY

  2. AGENDA WHAT’S THE PLAN ▸ What ▸ Why ▸ How

  3. FASTLANE WHAT’S

  4. WHAT SET OF AUTOMATION TOOLS ▸ Deployment ▸ Build process

    ▸ Screenshots ▸ Tests ▸ etc
  5. WOULDN’T A SHELL SCRIPT WORK JUST FINE? WHY

  6. WHY WHY FASTLANE ▸ Open Source Community Support ▸ Maintained

    by Twitter ▸ DRY (Don’t Repeat Yourself)
  7. GET TO CODE HOW

  8. HOW INSTALL ▸ Prerequisites ▸ $ ruby (installation instructions) ▸

    $ gem install fastlane
  9. INITIALIZATION ▸ $ cd <project_directory> ▸ $ fastlane init HOW

  10. HOW FASTFILE platform :ios do desc "Deploy a new version

    to the App Store" lane :deploy do |options| # <—— your code goes here end end
  11. THAT’S NOT THE REAL THING :-/ SLOWFILE

  12. HOW APPFILE # The bundle identifier of your app app_identifier

    “com.mycompany.myapp” # from Xcode team_name “My Company Inc.” # from Xcode team_id “123ABC123ABC”
  13. HOW SCREENSHOTS ▸ Put them inside the screenshots folder ▸

    Namespace by language
  14. HOW METADATA ▸ Lives inside the metadata folder ▸ Categories

    should match Apple Provided List of categories ▸ Namespaced by language
  15. HOW RUN IT ‣$ fastlane ios deploy

  16. HOW SUBMIT MULTIPLE APPS ▸ Environment variables to the rescue

    ▸ https://github.com/rightbalance/ temporary_environment
  17. HOW TEMPORARY ENVIRONMENT VARIABLES require 'temporary_environment' puts ENV['MY_AWESOME_ENV_VARIABLE'] # nil

    TemporaryEnvironment.with_env_variable( key: 'MY_AWESOME_ENV_VARIABLE', value:’SOME_USEFUL_VALUE' ) do puts ENV['MY_AWESOME_ENV_VARIABLE'] # SOME_USEFUL_VALUE end puts ENV['MY_AWESOME_ENV_VARIABLE'] # nil
  18. HOW FASTLANE ENVIRONMENT VARIABLES ▸ Fastfile ▸ FASTLANE_TEAM_ID ▸ FASTLANE_TEAM_NAME

  19. WHAT WE’VE LEARNED RECAP

  20. RECAP RECAP ▸ What ▸ Why ▸ How

  21. RECAP NOW WHAT? ▸ http://fastlane.tools ▸ https://github.com/fastlane ▸ Say Hi:

    ▸ Alex on twitter: @fsproru ▸ Michael on LinkedIn: https://www.linkedin.com/in/ michael-montgomery-a7b45028
  22. THANKS!