SlideShare a Scribd company logo
Continuos Delivery for
iOS Projects
With a commit.
How does continuos delivery begin?
Continuos Delivery
How does that translate for your iOS project?
• “We cannot release now - our lead developer is on vacation.”
• “We’ll have to wait for marketing to update the screenshots”
• “Sorry, I forgot to add your device to the provisioning profile.”
• “We’ll release this fix with the next build… next year”
Your usual release day
Unit testing
Automation testing
Build the app
Update provisioning profiles
Update push notification
certificates
Create new
screenshots Update release notes
Check if the certificates are valid
Signing issues!!!!!!!!
Beta testing F&@#!!!!
If it's complicated… simplify
• Your CI server usually had to contain a lot of tools:
• xctool
• PMD
• Slather
• oclint
• gcovr
• Hockey app, Crashlitycs, Testflight plugins
• Cocoapods or Carthage installed
• Keychain plugin
• Slack or HipChat plugin
If it's complicated… simplify
• … and a lot of scripts:
xcodebuild clean archive -archivePath build/MyApp 
-scheme MyApp
xcodebuild -exportArchive 
-exportFormat ipa 
-archivePath "build/MyApp.xcarchive" 
-exportPath "build/MyApp.ipa" 
-exportProvisioningProfile
"ProvisioningProfileName"
fastlane
• Automates your release process
• Connect all build tools together
• Define multiple lanes for different release needs
• Third party integrations
• Extendable
• 100% open-source
Meet the fastlane family
fastlane
• Configure a Gymfile
scheme "Example"
sdk "iphoneos9.0"
clean true
output_directory "./build"
output_name "MyApp"
• Build
gym
fastlane
• Creates certificates for you
• You will still need to store your
private key
fastlane
• Downloads and updates your
provisioning profiles
• You can specify which one
(development, ad hoc, app store)
fastlane
• Updates your Push Notifications
certificates
• You can specify which one
• You can set a custom password for
them
fastlane
• Runs your tests
• You can specify the output
• Generates reports for you
fastlane
• Generates screenshots for you
• Based on UI Automation tests
• Multiple localizations
• Multiple devices
fastlane
• Create beautiful marketing
images in no time!
• Adds the generated image from
snapshot into a labeled frame
fastlane
• Creates the app in iTunes
Connect for you
fastlane
• Create a Deliver file
• Takes care of the release for
you
Third party integrations
Your release day from now
on
lane :appstore do
increment_build_number
cocoapods
xctool
snapshot
sigh
deliver
sh "./customScript.sh"
slack
end
–Dee Dee, Dexter’s Laboratory
“What does this button do?”
Any questions?
Thank you!

More Related Content

What's hot

WSO2Con EU 2016: Building Your Deployment Architecture Through Requirements, ...
WSO2Con EU 2016: Building Your Deployment Architecture Through Requirements, ...WSO2Con EU 2016: Building Your Deployment Architecture Through Requirements, ...
WSO2Con EU 2016: Building Your Deployment Architecture Through Requirements, ...
WSO2
 
Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019
Tobias Hoppenthaler
 
Mvp skill saturday EP15 -O365 updates - OCT 2019
Mvp skill saturday EP15 -O365 updates - OCT 2019Mvp skill saturday EP15 -O365 updates - OCT 2019
Mvp skill saturday EP15 -O365 updates - OCT 2019
Kumton Suttiraksiri
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
Vincent Biret
 
Takeaways From Migrating to Git and Bitbucket Server
Takeaways From Migrating to Git and Bitbucket ServerTakeaways From Migrating to Git and Bitbucket Server
Takeaways From Migrating to Git and Bitbucket Server
Atlassian
 
Self-Serve Marketing at VMware with Request Portals
Self-Serve Marketing at VMware with Request PortalsSelf-Serve Marketing at VMware with Request Portals
Self-Serve Marketing at VMware with Request Portals
Atlassian
 
WSO2Con EU 2016: Integrate APIM to Third-party Tools: Creating an Agent for ELK
WSO2Con EU 2016: Integrate APIM to Third-party Tools:  Creating an Agent for ELKWSO2Con EU 2016: Integrate APIM to Third-party Tools:  Creating an Agent for ELK
WSO2Con EU 2016: Integrate APIM to Third-party Tools: Creating an Agent for ELK
WSO2
 
Boosting Dev and Ops Productivity
Boosting Dev and Ops ProductivityBoosting Dev and Ops Productivity
Boosting Dev and Ops Productivity
XebiaLabs
 
What's New in Puppet Enterprise 2015.3 (APAC)
What's New in Puppet Enterprise 2015.3 (APAC)What's New in Puppet Enterprise 2015.3 (APAC)
What's New in Puppet Enterprise 2015.3 (APAC)
Puppet
 
#Collab365 Setting up your release pipeline for SharePoint in Azure
#Collab365 Setting up your release pipeline for SharePoint in Azure#Collab365 Setting up your release pipeline for SharePoint in Azure
#Collab365 Setting up your release pipeline for SharePoint in Azure
Vincent Biret
 
Jeffrey Snover - Empowering DevOps with Azure Stack
Jeffrey Snover - Empowering DevOps with Azure StackJeffrey Snover - Empowering DevOps with Azure Stack
Jeffrey Snover - Empowering DevOps with Azure Stack
WinOps Conf
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – Deployments
BizTalk360
 
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham CarrickFrom Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
Atlassian
 
Azure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and moreAzure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and more
BizTalk360
 
What's New in Puppet Enterprise 2015.3
What's New in Puppet Enterprise 2015.3What's New in Puppet Enterprise 2015.3
What's New in Puppet Enterprise 2015.3
Puppet
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops
Vincent Biret
 
Tfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and TricksTfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and Tricks
InCycleSoftware
 
'Xero-ing in' on Global Collaboration During Hyper-Growth
'Xero-ing in' on Global Collaboration During Hyper-Growth'Xero-ing in' on Global Collaboration During Hyper-Growth
'Xero-ing in' on Global Collaboration During Hyper-Growth
Atlassian
 
Application Lifecycle Management at Scale
Application Lifecycle Management at ScaleApplication Lifecycle Management at Scale
Application Lifecycle Management at Scale
Atlassian
 
Continuous Delivery en Tools
Continuous Delivery en ToolsContinuous Delivery en Tools
Continuous Delivery en Tools
Delta-N
 

What's hot (20)

WSO2Con EU 2016: Building Your Deployment Architecture Through Requirements, ...
WSO2Con EU 2016: Building Your Deployment Architecture Through Requirements, ...WSO2Con EU 2016: Building Your Deployment Architecture Through Requirements, ...
WSO2Con EU 2016: Building Your Deployment Architecture Through Requirements, ...
 
Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019Continuous Everything @ dotnet cologne 2019
Continuous Everything @ dotnet cologne 2019
 
Mvp skill saturday EP15 -O365 updates - OCT 2019
Mvp skill saturday EP15 -O365 updates - OCT 2019Mvp skill saturday EP15 -O365 updates - OCT 2019
Mvp skill saturday EP15 -O365 updates - OCT 2019
 
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
#SPSBrussels 2017 vincent biret #azure #functions microsoft #flow
 
Takeaways From Migrating to Git and Bitbucket Server
Takeaways From Migrating to Git and Bitbucket ServerTakeaways From Migrating to Git and Bitbucket Server
Takeaways From Migrating to Git and Bitbucket Server
 
Self-Serve Marketing at VMware with Request Portals
Self-Serve Marketing at VMware with Request PortalsSelf-Serve Marketing at VMware with Request Portals
Self-Serve Marketing at VMware with Request Portals
 
WSO2Con EU 2016: Integrate APIM to Third-party Tools: Creating an Agent for ELK
WSO2Con EU 2016: Integrate APIM to Third-party Tools:  Creating an Agent for ELKWSO2Con EU 2016: Integrate APIM to Third-party Tools:  Creating an Agent for ELK
WSO2Con EU 2016: Integrate APIM to Third-party Tools: Creating an Agent for ELK
 
Boosting Dev and Ops Productivity
Boosting Dev and Ops ProductivityBoosting Dev and Ops Productivity
Boosting Dev and Ops Productivity
 
What's New in Puppet Enterprise 2015.3 (APAC)
What's New in Puppet Enterprise 2015.3 (APAC)What's New in Puppet Enterprise 2015.3 (APAC)
What's New in Puppet Enterprise 2015.3 (APAC)
 
#Collab365 Setting up your release pipeline for SharePoint in Azure
#Collab365 Setting up your release pipeline for SharePoint in Azure#Collab365 Setting up your release pipeline for SharePoint in Azure
#Collab365 Setting up your release pipeline for SharePoint in Azure
 
Jeffrey Snover - Empowering DevOps with Azure Stack
Jeffrey Snover - Empowering DevOps with Azure StackJeffrey Snover - Empowering DevOps with Azure Stack
Jeffrey Snover - Empowering DevOps with Azure Stack
 
Logic Apps – Deployments
Logic Apps – DeploymentsLogic Apps – Deployments
Logic Apps – Deployments
 
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham CarrickFrom Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
 
Azure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and moreAzure Integration in Production with Logic Apps and more
Azure Integration in Production with Logic Apps and more
 
What's New in Puppet Enterprise 2015.3
What's New in Puppet Enterprise 2015.3What's New in Puppet Enterprise 2015.3
What's New in Puppet Enterprise 2015.3
 
#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops#spsclt18 vincent biret #spfx #devops
#spsclt18 vincent biret #spfx #devops
 
Tfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and TricksTfs 2015 Upgrade Tips and Tricks
Tfs 2015 Upgrade Tips and Tricks
 
'Xero-ing in' on Global Collaboration During Hyper-Growth
'Xero-ing in' on Global Collaboration During Hyper-Growth'Xero-ing in' on Global Collaboration During Hyper-Growth
'Xero-ing in' on Global Collaboration During Hyper-Growth
 
Application Lifecycle Management at Scale
Application Lifecycle Management at ScaleApplication Lifecycle Management at Scale
Application Lifecycle Management at Scale
 
Continuous Delivery en Tools
Continuous Delivery en ToolsContinuous Delivery en Tools
Continuous Delivery en Tools
 

Viewers also liked

cv-masood without details
cv-masood without detailscv-masood without details
cv-masood without details
Masood Ul haq Cdr
 
1900 a
1900 a1900 a
1900 a
Helene Fosse
 
Nuestras mascotas
Nuestras mascotasNuestras mascotas
Nuestras mascotas
Leonidas Antonio Cruz Zavala
 
biodiversity of medicinal plants in thudaripettai village
biodiversity of medicinal plants in thudaripettai villagebiodiversity of medicinal plants in thudaripettai village
biodiversity of medicinal plants in thudaripettai village
IJEAB
 
¡Juguemos a la muerte!
¡Juguemos a la muerte!¡Juguemos a la muerte!
¡Juguemos a la muerte!
Difusores de la Fe
 
La Lectura Compartida en el aula
La Lectura Compartida en el aulaLa Lectura Compartida en el aula
La Lectura Compartida en el aula
Esperanza Sosa Meza
 
Article summary "A framework for information systems architecture"
Article summary "A framework for information systems architecture"Article summary "A framework for information systems architecture"
Article summary "A framework for information systems architecture"
Dejan Munjin
 
One vote, one value: electoral reform (1968)
One vote, one value: electoral reform (1968)One vote, one value: electoral reform (1968)
One vote, one value: electoral reform (1968)
John Lubbock
 
Eva Castillo / Campaña 2 - 2017
Eva Castillo / Campaña 2 - 2017Eva Castillo / Campaña 2 - 2017
Eva Castillo / Campaña 2 - 2017
Luz Amparo Cerón
 
Curriculum Addrian A English
Curriculum Addrian A EnglishCurriculum Addrian A English
Curriculum Addrian A English
Addrian Ortega
 
Slidshare
SlidshareSlidshare
The Apsalar Mobile Data Management Platform
The Apsalar Mobile Data Management PlatformThe Apsalar Mobile Data Management Platform
The Apsalar Mobile Data Management Platform
James Nichols
 

Viewers also liked (13)

cv linkedin
cv linkedincv linkedin
cv linkedin
 
cv-masood without details
cv-masood without detailscv-masood without details
cv-masood without details
 
1900 a
1900 a1900 a
1900 a
 
Nuestras mascotas
Nuestras mascotasNuestras mascotas
Nuestras mascotas
 
biodiversity of medicinal plants in thudaripettai village
biodiversity of medicinal plants in thudaripettai villagebiodiversity of medicinal plants in thudaripettai village
biodiversity of medicinal plants in thudaripettai village
 
¡Juguemos a la muerte!
¡Juguemos a la muerte!¡Juguemos a la muerte!
¡Juguemos a la muerte!
 
La Lectura Compartida en el aula
La Lectura Compartida en el aulaLa Lectura Compartida en el aula
La Lectura Compartida en el aula
 
Article summary "A framework for information systems architecture"
Article summary "A framework for information systems architecture"Article summary "A framework for information systems architecture"
Article summary "A framework for information systems architecture"
 
One vote, one value: electoral reform (1968)
One vote, one value: electoral reform (1968)One vote, one value: electoral reform (1968)
One vote, one value: electoral reform (1968)
 
Eva Castillo / Campaña 2 - 2017
Eva Castillo / Campaña 2 - 2017Eva Castillo / Campaña 2 - 2017
Eva Castillo / Campaña 2 - 2017
 
Curriculum Addrian A English
Curriculum Addrian A EnglishCurriculum Addrian A English
Curriculum Addrian A English
 
Slidshare
SlidshareSlidshare
Slidshare
 
The Apsalar Mobile Data Management Platform
The Apsalar Mobile Data Management PlatformThe Apsalar Mobile Data Management Platform
The Apsalar Mobile Data Management Platform
 

Similar to Continous Integration for iOS Projects

DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
Amazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
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
 
Wrapping with PhoneGap
Wrapping with PhoneGapWrapping with PhoneGap
Wrapping with PhoneGap
Karl Bunyan
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Amazon Web Services
 
Dev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - TorontoDev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - Toronto
Amazon Web Services
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous Delivery
Mikhail Prudnikov
 
Appium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation IntroductionAppium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation Introduction
snevesbarros
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
Amazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTreeThe Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
RedBlackTree
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Amazon Web Services
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
Amazon Web Services
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
Amazon Web Services
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
Amazon Web Services
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
Amazon Web Services
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
John M. Wargo
 

Similar to Continous Integration for iOS Projects (20)

DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
 
Wrapping with PhoneGap
Wrapping with PhoneGapWrapping with PhoneGap
Wrapping with PhoneGap
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
Dev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - TorontoDev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - Toronto
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous Delivery
 
Appium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation IntroductionAppium Meetup #2 - Mobile Web Automation Introduction
Appium Meetup #2 - Mobile Web Automation Introduction
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTreeThe Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
 

Continous Integration for iOS Projects

  • 2.
  • 3. With a commit. How does continuos delivery begin?
  • 4. Continuos Delivery How does that translate for your iOS project? • “We cannot release now - our lead developer is on vacation.” • “We’ll have to wait for marketing to update the screenshots” • “Sorry, I forgot to add your device to the provisioning profile.” • “We’ll release this fix with the next build… next year”
  • 5. Your usual release day Unit testing Automation testing Build the app Update provisioning profiles Update push notification certificates Create new screenshots Update release notes Check if the certificates are valid Signing issues!!!!!!!! Beta testing F&@#!!!!
  • 6. If it's complicated… simplify • Your CI server usually had to contain a lot of tools: • xctool • PMD • Slather • oclint • gcovr • Hockey app, Crashlitycs, Testflight plugins • Cocoapods or Carthage installed • Keychain plugin • Slack or HipChat plugin
  • 7. If it's complicated… simplify • … and a lot of scripts: xcodebuild clean archive -archivePath build/MyApp -scheme MyApp xcodebuild -exportArchive -exportFormat ipa -archivePath "build/MyApp.xcarchive" -exportPath "build/MyApp.ipa" -exportProvisioningProfile "ProvisioningProfileName"
  • 8. fastlane • Automates your release process • Connect all build tools together • Define multiple lanes for different release needs • Third party integrations • Extendable • 100% open-source
  • 10. fastlane • Configure a Gymfile scheme "Example" sdk "iphoneos9.0" clean true output_directory "./build" output_name "MyApp" • Build gym
  • 11. fastlane • Creates certificates for you • You will still need to store your private key
  • 12. fastlane • Downloads and updates your provisioning profiles • You can specify which one (development, ad hoc, app store)
  • 13. fastlane • Updates your Push Notifications certificates • You can specify which one • You can set a custom password for them
  • 14. fastlane • Runs your tests • You can specify the output • Generates reports for you
  • 15. fastlane • Generates screenshots for you • Based on UI Automation tests • Multiple localizations • Multiple devices
  • 16. fastlane • Create beautiful marketing images in no time! • Adds the generated image from snapshot into a labeled frame
  • 17. fastlane • Creates the app in iTunes Connect for you
  • 18. fastlane • Create a Deliver file • Takes care of the release for you
  • 20. Your release day from now on lane :appstore do increment_build_number cocoapods xctool snapshot sigh deliver sh "./customScript.sh" slack end
  • 21. –Dee Dee, Dexter’s Laboratory “What does this button do?”