Successfully reported this slideshow.

Automating Feature Branch Builds on iOS and Android - Codemobile 2017 Lightning talk

1

Share

1 of 17
1 of 17

Automating Feature Branch Builds on iOS and Android - Codemobile 2017 Lightning talk

1

Share

Download to read offline

This is a lightning talk from Codemobile 2017 in Chester, UK on Automating Feature Branch Builds on iOS and Android

Video of this talk:
https://www.youtube.com/watch?list=PLmEZjI7vcqERys79KTTcWQHEb-Kj0zman&v=S8m1ulvtfrw

This is a lightning talk from Codemobile 2017 in Chester, UK on Automating Feature Branch Builds on iOS and Android

Video of this talk:
https://www.youtube.com/watch?list=PLmEZjI7vcqERys79KTTcWQHEb-Kj0zman&v=S8m1ulvtfrw

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Automating Feature Branch Builds on iOS and Android - Codemobile 2017 Lightning talk

  1. 1. Quernus Automated Feature Branch Builds on iOS Matt Hamilton matt@quernus.co.uk @hammertoe Codemobile 19th April 2017
  2. 2. Who am I? • 15 years as Technical Director of web agency • Python developer • Now thrust into the world of mobile • Contractor, currently lead of enquos mobile team
  3. 3. What is enquos?
  4. 4. iOS Build Process • Long • Arcane • Requires variations • Requires certificates / keys
  5. 5. Tools Github Fastlane / Gradle Jenkins Fabric Beta / Testflight Slack
  6. 6. Fastlane • Automates builds • Allows multiple ‘lanes’ to be built • Repeatable, scriptable builds • An ‘API’ for iTunes Connect • Takes the hassle out of the build and deployment process
  7. 7. def do_build(scheme, configuration) increment_build_number( build_number: ENV['BUILD_ID'] ) profile = 'build/nutrition.mobileprovision' if configuration == 'Release' app_identifier = 'com.enquos.nutrition' display_name = 'enquos nutrition' set_istest_false sigh( app_identifier: app_identifier, filename: profile, ) else app_identifier = 'com.enquos.Nutrition.alpha.' + GIT_BRANCH_ID display_name = 'enquos nutrition ' + GIT_BRANCH sigh( app_identifier: '*', adhoc: '1', filename: profile, ) end update_info_plist( app_identifier: app_identifier, display_name: display_name, plist_path: 'Nutrition/Info.plist', xcodeproj: 'Nutrition/Nutrition.xcodeproj', ) update_project_provisioning( xcodeproj: "Nutrition/Nutrition.xcodeproj", build_configuration_filter: ".*Nutrition.*", profile: profile, ) ipa( scheme: scheme, configuration: configuration, embed: profile, xcargs: '-derivedDataPath ./build', ) end
  8. 8. Jenkins • Monitors Github and builds a new app when it sees a change • Has separate jobs for: • develop/ • feature/ • store
  9. 9. Quernus A Typical Flow
  10. 10. Gotchas • Need to change the App ID for watch app / extensions too. • Originally we used completely dynamic app ids, but gets messy with 3rd party APIs (e.g. Facebook) that need to know App ID in advance
  11. 11. Quernus Thanks Matt Hamilton matt@quernus.co.uk @hammertoe

×