SlideShare a Scribd company logo
AUTOMATED CONTINUOUS DELIVERY FOR IOS
A STATE-OF-THE-ART INTRODUCTION TO…
EDU CASELLESMarch 2016
AUTOMATED CONTINUOUS DELIVERY FOR IOS
WHY?
▸ QA: I need a build on this device from this branch to accept your story.

Dev: 🙄
▸ PO: I want to demo this new feature you are currently working on in
my next meeting. 

Dev: 😞
▸ User: I would love to see a new release fixing the bug I just raised.

Dev: 😩

…
▸ 🚪% 💨
AUTOMATED CONTINUOUS DELIVERY FOR IOS
LET’S REVIEW THE PIPELINE
▸ Build ▸ Test ▸ Archive ▸ Distribute▸ Review
AUTOMATED CONTINUOUS DELIVERY FOR IOS
BUILD & TEST
▸ Building your project and running tests can be done both
from Xcode or terminal.
▸ Continuous Integration:
▸ Apple’s solution: Xcode bots
▸ Recently, a few services support CI on the cloud:
TravisCI, CircleCI, etc.
AUTOMATED CONTINUOUS DELIVERY FOR IOS
ARCHIVE
Certificate Key
Provisioning
Profile
Archive
(Build + Signing)
Signed IPA
AUTOMATED CONTINUOUS DELIVERY FOR IOS
REVIEW
▸ Every release to the App Store has to pass Apple’s review.
▸ Average review time is: 4 days (based on 241 reviews in
the last 14 days).
▸ There is no way to avoid it… just plan ahead.
AUTOMATED CONTINUOUS DELIVERY FOR IOS
DISTRIBUTE
▸ Third-Party services (Fabric, Hockey, DeployGate):

Easy, most of them offer APIs to upload and submit the
IPA file.
▸ Official services:
▸ iTunes Connect (TestFlight and App Store): 

Only supports manual upload and submission.
D’OH!
AUTOMATED CONTINUOUS DELIVERY FOR IOS
FASTLANE
▸ Fills the gap to interact with Apple Developer Portal and
iTunes Connect.
▸ Born from desperation, it used to do web scraping.
▸ But… Apple uses APIs to communicate with their
AngularJS-based front-end. Let’s use them too!
▸ Great adoption from the community!
▸ Still very young. It is continuously improving.
AUTOMATED CONTINUOUS DELIVERY FOR IOS
THAT´S IT!
▸ Build ▸ Test ▸ Archive ▸ Distribute▸ Review
AUTOMATED CONTINUOUS DELIVERY FOR IOS
BENEFITS 👍 CHALLENGES 💪
▸ Saves time
▸ Improves product quality
▸ Reduces release cycle
▸ Makes users happier
▸ Based on undocumented
APIs
▸ No official support from
Apple
▸ (Still) not widely used by
the community
THANKS 😇
IF THERE IS TIME FOR ONE MORE …
AUTOMATED CONTINUOUS DELIVERY FOR IOS
FASTLANE EXAMPLES
▸ Common lane:

Build + Test
▸ QA lane:

… + Archive(Ad-Hoc) + DeployGate
▸ Beta lane:

… + Archive(App Store) + TestFlight
▸ App Store lane:

… + Screenshots + Archive(App Store) + Deliver
THANKS (AGAIN) 😊

More Related Content

What's hot

Build Your First Android App Session #1
Build Your First Android App Session #1Build Your First Android App Session #1
Build Your First Android App Session #1
Troy Miles
 
Selenium Camp 2016
Selenium Camp 2016Selenium Camp 2016
Selenium Camp 2016
Dan Cuellar
 
Elixir Deployment Tools
Elixir Deployment ToolsElixir Deployment Tools
Elixir Deployment Tools
Aaron Renner
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
Manoj Kumar Kumar
 
Automation, Selenium Webdriver and Page Objects
Automation, Selenium Webdriver and Page ObjectsAutomation, Selenium Webdriver and Page Objects
Automation, Selenium Webdriver and Page Objects
Andrew Boyer
 
Install Concourse CI with BOSH
Install Concourse CI with BOSHInstall Concourse CI with BOSH
Install Concourse CI with BOSH
Toshiaki Maki
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
Ambreen Khan
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
Syam Sasi
 
[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team
Srijan Technologies
 
Testing Native iOS Apps with Appium
Testing Native iOS Apps with AppiumTesting Native iOS Apps with Appium
Testing Native iOS Apps with Appium
Sauce Labs
 
An Introduction to Appium Desktop
An Introduction to Appium DesktopAn Introduction to Appium Desktop
An Introduction to Appium Desktop
Sauce Labs
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
Aleksejs Trescalins
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
Wim Selles
 
Appium overview
Appium overviewAppium overview
Appium overview
Abhishek Yadav
 
Appium@Work at PAYBACK
Appium@Work at PAYBACKAppium@Work at PAYBACK
Appium@Work at PAYBACK
Marcel Gehlen
 
What's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to NowWhat's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to Now
Sauce Labs
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
Srijan Technologies
 
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNAOGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
Buff Nguyen
 
One Man App
One Man AppOne Man App
One Man App
Dariusz Łuksza
 

What's hot (19)

Build Your First Android App Session #1
Build Your First Android App Session #1Build Your First Android App Session #1
Build Your First Android App Session #1
 
Selenium Camp 2016
Selenium Camp 2016Selenium Camp 2016
Selenium Camp 2016
 
Elixir Deployment Tools
Elixir Deployment ToolsElixir Deployment Tools
Elixir Deployment Tools
 
Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Automation, Selenium Webdriver and Page Objects
Automation, Selenium Webdriver and Page ObjectsAutomation, Selenium Webdriver and Page Objects
Automation, Selenium Webdriver and Page Objects
 
Install Concourse CI with BOSH
Install Concourse CI with BOSHInstall Concourse CI with BOSH
Install Concourse CI with BOSH
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
 
[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team
 
Testing Native iOS Apps with Appium
Testing Native iOS Apps with AppiumTesting Native iOS Apps with Appium
Testing Native iOS Apps with Appium
 
An Introduction to Appium Desktop
An Introduction to Appium DesktopAn Introduction to Appium Desktop
An Introduction to Appium Desktop
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
 
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
How React Native, Appium and me made each other shine @ContinuousDeliveryAmst...
 
Appium overview
Appium overviewAppium overview
Appium overview
 
Appium@Work at PAYBACK
Appium@Work at PAYBACKAppium@Work at PAYBACK
Appium@Work at PAYBACK
 
What's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to NowWhat's New With Appium? From 1.0 to Now
What's New With Appium? From 1.0 to Now
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
 
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNAOGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
OGDC2012 Cross-Platform Development On Mobile Devices_Mr.Takaaki Mizuno_DeNA
 
One Man App
One Man AppOne Man App
One Man App
 

Similar to Automated Continuous Delivery for iOS

How to build your own iOS framework
How to build your own iOS frameworkHow to build your own iOS framework
How to build your own iOS framework
Billy Tobon
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
Raymond Camden
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)
danielputerman
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases
Okko Oulasvirta
 
Izumi 1.0: Your Next Scala Stack
Izumi 1.0: Your Next Scala StackIzumi 1.0: Your Next Scala Stack
Izumi 1.0: Your Next Scala Stack
7mind
 
Azure slots for app deployment the continuous delivery way
Azure slots for app deployment the continuous delivery wayAzure slots for app deployment the continuous delivery way
Azure slots for app deployment the continuous delivery way
wale ayandiran
 
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K..."Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
Tech in Asia ID
 
Device Testing with AWS Device Farm
Device Testing with AWS Device FarmDevice Testing with AWS Device Farm
Device Testing with AWS Device Farm
Amazon Web Services
 
Continuously serving the developer community with Continuous Integration and...
Continuously serving the developer community with  Continuous Integration and...Continuously serving the developer community with  Continuous Integration and...
Continuously serving the developer community with Continuous Integration and...
Thoughtworks
 
Building a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator PlatformBuilding a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator Platform
Angus Fox
 
Testing Your App Before Launch: An Introduction to AWS Device Farm
Testing Your App Before Launch: An Introduction to AWS Device FarmTesting Your App Before Launch: An Introduction to AWS Device Farm
Testing Your App Before Launch: An Introduction to AWS Device Farm
Amazon Web Services
 
Introduction to AWS Device Farm
Introduction to AWS Device FarmIntroduction to AWS Device Farm
Introduction to AWS Device Farm
Amazon Web Services
 
Ionic Hybrid Mobile Application
Ionic Hybrid Mobile ApplicationIonic Hybrid Mobile Application
Ionic Hybrid Mobile Application
Al Sayed Gamal
 
Introduction to Cordova
Introduction to CordovaIntroduction to Cordova
Introduction to Cordova
Raymond Camden
 
iOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsiOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS Apps
Shashikant Jagtap
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Applitools
 
Continuous Cross Platform Mobile App Development using Jenkins Build Server
Continuous Cross Platform Mobile App Development using Jenkins Build ServerContinuous Cross Platform Mobile App Development using Jenkins Build Server
Continuous Cross Platform Mobile App Development using Jenkins Build Server
Adam Paxton
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
CocoaHeads France
 
Off the rails - using iPad for Development
Off the rails - using iPad for DevelopmentOff the rails - using iPad for Development
Off the rails - using iPad for Development
Rob Dudley
 
Android developer's toolbox
Android developer's toolboxAndroid developer's toolbox
Android developer's toolbox
Alex Verdyan
 

Similar to Automated Continuous Delivery for iOS (20)

How to build your own iOS framework
How to build your own iOS frameworkHow to build your own iOS framework
How to build your own iOS framework
 
Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases
 
Izumi 1.0: Your Next Scala Stack
Izumi 1.0: Your Next Scala StackIzumi 1.0: Your Next Scala Stack
Izumi 1.0: Your Next Scala Stack
 
Azure slots for app deployment the continuous delivery way
Azure slots for app deployment the continuous delivery wayAzure slots for app deployment the continuous delivery way
Azure slots for app deployment the continuous delivery way
 
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K..."Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
 
Device Testing with AWS Device Farm
Device Testing with AWS Device FarmDevice Testing with AWS Device Farm
Device Testing with AWS Device Farm
 
Continuously serving the developer community with Continuous Integration and...
Continuously serving the developer community with  Continuous Integration and...Continuously serving the developer community with  Continuous Integration and...
Continuously serving the developer community with Continuous Integration and...
 
Building a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator PlatformBuilding a scalable app factory with Appcelerator Platform
Building a scalable app factory with Appcelerator Platform
 
Testing Your App Before Launch: An Introduction to AWS Device Farm
Testing Your App Before Launch: An Introduction to AWS Device FarmTesting Your App Before Launch: An Introduction to AWS Device Farm
Testing Your App Before Launch: An Introduction to AWS Device Farm
 
Introduction to AWS Device Farm
Introduction to AWS Device FarmIntroduction to AWS Device Farm
Introduction to AWS Device Farm
 
Ionic Hybrid Mobile Application
Ionic Hybrid Mobile ApplicationIonic Hybrid Mobile Application
Ionic Hybrid Mobile Application
 
Introduction to Cordova
Introduction to CordovaIntroduction to Cordova
Introduction to Cordova
 
iOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsiOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS Apps
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
 
Continuous Cross Platform Mobile App Development using Jenkins Build Server
Continuous Cross Platform Mobile App Development using Jenkins Build ServerContinuous Cross Platform Mobile App Development using Jenkins Build Server
Continuous Cross Platform Mobile App Development using Jenkins Build Server
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
 
Off the rails - using iPad for Development
Off the rails - using iPad for DevelopmentOff the rails - using iPad for Development
Off the rails - using iPad for Development
 
Android developer's toolbox
Android developer's toolboxAndroid developer's toolbox
Android developer's toolbox
 

Automated Continuous Delivery for iOS

  • 1. AUTOMATED CONTINUOUS DELIVERY FOR IOS A STATE-OF-THE-ART INTRODUCTION TO… EDU CASELLESMarch 2016
  • 2. AUTOMATED CONTINUOUS DELIVERY FOR IOS WHY? ▸ QA: I need a build on this device from this branch to accept your story.
 Dev: 🙄 ▸ PO: I want to demo this new feature you are currently working on in my next meeting. 
 Dev: 😞 ▸ User: I would love to see a new release fixing the bug I just raised.
 Dev: 😩
 … ▸ 🚪% 💨
  • 3. AUTOMATED CONTINUOUS DELIVERY FOR IOS LET’S REVIEW THE PIPELINE ▸ Build ▸ Test ▸ Archive ▸ Distribute▸ Review
  • 4. AUTOMATED CONTINUOUS DELIVERY FOR IOS BUILD & TEST ▸ Building your project and running tests can be done both from Xcode or terminal. ▸ Continuous Integration: ▸ Apple’s solution: Xcode bots ▸ Recently, a few services support CI on the cloud: TravisCI, CircleCI, etc.
  • 5. AUTOMATED CONTINUOUS DELIVERY FOR IOS ARCHIVE Certificate Key Provisioning Profile Archive (Build + Signing) Signed IPA
  • 6. AUTOMATED CONTINUOUS DELIVERY FOR IOS REVIEW ▸ Every release to the App Store has to pass Apple’s review. ▸ Average review time is: 4 days (based on 241 reviews in the last 14 days). ▸ There is no way to avoid it… just plan ahead.
  • 7. AUTOMATED CONTINUOUS DELIVERY FOR IOS DISTRIBUTE ▸ Third-Party services (Fabric, Hockey, DeployGate):
 Easy, most of them offer APIs to upload and submit the IPA file. ▸ Official services: ▸ iTunes Connect (TestFlight and App Store): 
 Only supports manual upload and submission.
  • 9. AUTOMATED CONTINUOUS DELIVERY FOR IOS FASTLANE ▸ Fills the gap to interact with Apple Developer Portal and iTunes Connect. ▸ Born from desperation, it used to do web scraping. ▸ But… Apple uses APIs to communicate with their AngularJS-based front-end. Let’s use them too! ▸ Great adoption from the community! ▸ Still very young. It is continuously improving.
  • 10. AUTOMATED CONTINUOUS DELIVERY FOR IOS THAT´S IT! ▸ Build ▸ Test ▸ Archive ▸ Distribute▸ Review
  • 11. AUTOMATED CONTINUOUS DELIVERY FOR IOS BENEFITS 👍 CHALLENGES 💪 ▸ Saves time ▸ Improves product quality ▸ Reduces release cycle ▸ Makes users happier ▸ Based on undocumented APIs ▸ No official support from Apple ▸ (Still) not widely used by the community
  • 13. IF THERE IS TIME FOR ONE MORE …
  • 14. AUTOMATED CONTINUOUS DELIVERY FOR IOS FASTLANE EXAMPLES ▸ Common lane:
 Build + Test ▸ QA lane:
 … + Archive(Ad-Hoc) + DeployGate ▸ Beta lane:
 … + Archive(App Store) + TestFlight ▸ App Store lane:
 … + Screenshots + Archive(App Store) + Deliver