SlideShare une entreprise Scribd logo
Jenkins Setup
freestyle and pipeline for
iOS apps
By: Gagan Vishal Mishra
Introduction
In this tutorial we will do Jenkins CI/CD setup for iOS app in
 Freestyle
 Pipeline
Pre-Requisites: Must have
 Mac Machine.
 Java 1.8 installed on Mac.
 Latest Xcode install on Mac.
 Signing Certificate and Provisioning profile installed.
Installation
Jenkins native installer has been deprecated. Now Jenkins can
be install using the Homebrew package.
 Install Homebrew package https://brew.sh/ in you dont have
already.
One completed run following command on Terminal
 brew install jenkins-lts
Installations details link can be found on
https://jenkins.io/download/lts/macos/
Installation
When the installer finishes, open localhost:8080 in your
browser, you will get below screen
Copy and paste initialAdminPassword from given path and click
continue.
Installation
From Customize Jenkins screen, select ‘Install Suggested
plugins
Next screen will start download and installing of plugins.
Installation
This will take several minutes, If any installation is getting fail,
then click ‘Retry’ button
Next screen would be account setup screen.
Installation
Now create your admin account — here entering admin for
both Username and Password works fine.
Next screen would be Instance Configuration screen.
Installation
On this screen click ‘Not Now’
After this screen, one more screen will appear, click ‘Start using
Jenkins’. Now you are done with installation process. Next we
will configure Jenkins for Xcode plugin.
Add Xcode plugin
From left hand side
 Click ‘Manage Jenkins’
 Select ‘Manage plugins’
 Search for ‘Xcode Integration’ and ‘SICCI for Xcode plugin’
 Click on ‘Download and Install’
 Restart your Jenkins.
Now you can see these two plugins into ‘Installed plugin’.
Freestyle job
From left hand side, Click on ‘New Item’, On next page
 Enter your app name
 Select you ‘Freestyle project’
 Click ‘OK’
Freestyle job
On This screen, under ‘General tab’
 Enter app description.
 Select ‘GitHub project’ and enter you repo url.
Freestyle job
On the same screen, under ‘Source Code Management’
 Enter Repository URL.
 Select your Git credential under ‘Credentials’. You can add
you credentials by selecting ‘add’.
 Specify your branch.
Freestyle job
On the same screen, under ‘Build Triggers’
 Select ‘Trigger for GITScm polling’.
Here you can make your own choice depends on your
requirement.
Freestyle job
On the same screen, under ‘Build Environment’
Make following setup
Freestyle job
On the same screen, under ‘Build’, Click on ‘Add Build step’ and
select ‘Xcode’ from dropdown.
 Enter ‘Development team id’ which can be found from
Keychain.
 Click ‘Settings’
Freestyle job
On the same setting screen, under ‘Build’
 Select ‘Clean before build?’ checkmark.
 Enter Configuration, Xcode Schema File.
 Select ‘Pack application, build and sign .ipa’ checkmark,
 Add ‘Export method’ (Should be one in 'development', 'ad-
hoc', 'enterprise' or 'app-store'.)
Select following check mark
 Upload Bitcode
 Upload Symbols
 Compile Bitcode
 Pack on demand resources
 Strip Swift Symbols
Screen would be look like in next screen
Freestyle job
On the same setting screen, under ‘Build’
Freestyle job
On the same setting screen, under ‘Code signing & OS X
keychain options’ select automatic
Freestyle job
On the same screen, under ‘Advanced Xcode build options’
 Add your workspace filepath (if you have workspace)
 Add your build output directory. It will contain generated IPA
file.
Freestyle job
Now you are done with Freestyle job setup.
 Click on apply and save.
 Click on ‘Build Now’ from available options.
Now you are done with freestyle job. Yeahhhhhhh
Pipeline job
Pipeline jobs can be useful
 If you want to run multiple build in different environment.
 Run parallel tests.
 Add different steps in build process.
In a Jenkins pipeline, every job or event has some sort of
dependency on at least one or more events. For example
Pipeline job
Before setting pipeline job, we have to add GIT credentials
under ‘Credentials’.
Once credentials are added, note down ‘credentials id’ for
future auth process in Pipeline script.
Pipeline job
From left hand side on Jenkins, click ‘new item’
 Enter app name
 Select ‘Pipeline’
Pipeline job
On Next screen
 Enter app description and build trigger option (If required)
Pipeline job
On the same screen, under ‘Pipeline’
 Under definition, select ‘pipeline script’
 Copy Script in an preferred editor and edit branches,
credentialsId, bundleID, developmentTeamID,
xcodeWorkspaceFile, App store credentials etc and click
save.
Pipeline job
Now click on ‘Build Now’
 Build will start running.
 You can each steps of the build progress.
DONE, Now you are able to add CI/CD to your iOS projects.
Connect me on github/gagan5278

Contenu connexe

Tendances

Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
Krunal Doshi
 
Jenkins
JenkinsJenkins
Jenkins
Roger Xia
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
Md. Minhazul Haque
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
Pavan Gupta
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
jstack
 
Cypress
CypressCypress
React Native
React Native React Native
React Native
vishal kumar
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Progressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.ioProgressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.io
Knoldus Inc.
 
Performance Monitoring with Google Lighthouse
Performance Monitoring with Google LighthousePerformance Monitoring with Google Lighthouse
Performance Monitoring with Google Lighthouse
DrupalCamp Kyiv
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
HarikaReddy115
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
Innovation Roots
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Edureka!
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
Amazon Web Services
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
Erez Cohen
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams
Atlassian
 
Selenium IDE
Selenium IDESelenium IDE
Selenium IDE
b4usolution .
 
Git flow
Git flowGit flow
Git flow
Valerio Como
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
Nibu Baby
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
Kumar Shìvam
 

Tendances (20)

Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
Jenkins
JenkinsJenkins
Jenkins
 
CI/CD with Github Actions
CI/CD with Github ActionsCI/CD with Github Actions
CI/CD with Github Actions
 
Jenkins Introduction
Jenkins IntroductionJenkins Introduction
Jenkins Introduction
 
Git branching strategies
Git branching strategiesGit branching strategies
Git branching strategies
 
Cypress
CypressCypress
Cypress
 
React Native
React Native React Native
React Native
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Jenkins.pdf
 
Progressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.ioProgressive Web App Testing With Cypress.io
Progressive Web App Testing With Cypress.io
 
Performance Monitoring with Google Lighthouse
Performance Monitoring with Google LighthousePerformance Monitoring with Google Lighthouse
Performance Monitoring with Google Lighthouse
 
Jenkins tutorial
Jenkins tutorialJenkins tutorial
Jenkins tutorial
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams
 
Selenium IDE
Selenium IDESelenium IDE
Selenium IDE
 
Git flow
Git flowGit flow
Git flow
 
Introduction to Bdd and cucumber
Introduction to Bdd and cucumberIntroduction to Bdd and cucumber
Introduction to Bdd and cucumber
 
CICD Pipeline Using Github Actions
CICD Pipeline Using Github ActionsCICD Pipeline Using Github Actions
CICD Pipeline Using Github Actions
 

Similaire à Jenkins CI/CD setup for iOS in Mac OSX

CI & CD- mobile application
CI & CD- mobile applicationCI & CD- mobile application
CI & CD- mobile application
CI & CD- mobile applicationCI & CD- mobile application
Using galen framework for automated cross browser layout testing
Using galen framework for automated cross browser layout testingUsing galen framework for automated cross browser layout testing
Using galen framework for automated cross browser layout testing
Sarah Elson
 
Containers Lab
Containers Lab Containers Lab
Containers Lab
Dev_Events
 
Mixpanel Integration in Android
Mixpanel Integration in AndroidMixpanel Integration in Android
Mixpanel Integration in Android
mobi fly
 
Jenkins
JenkinsJenkins
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
Pratik Patel
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - Beginners
Ambarish Hazarnis
 
Homestead demo
Homestead demoHomestead demo
Homestead demo
Saranga Tripathy
 
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
InnovationM
 
Jenkins Setup Document
Jenkins Setup DocumentJenkins Setup Document
Jenkins Setup Document
mobi fly
 
Lesson 02 - React Native Development Environment Setup
Lesson 02 - React Native Development Environment SetupLesson 02 - React Native Development Environment Setup
Lesson 02 - React Native Development Environment Setup
University of Catania
 
CIS 170 Become Exceptional--cis170.com
CIS 170 Become Exceptional--cis170.comCIS 170 Become Exceptional--cis170.com
CIS 170 Become Exceptional--cis170.com
claric131
 
Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson
Dev_Events
 
Final NEWS.pdf
Final NEWS.pdfFinal NEWS.pdf
Final NEWS.pdf
RebaMaheen
 
Final NewsApp.pdf
Final NewsApp.pdfFinal NewsApp.pdf
Final NewsApp.pdf
RebaMaheen
 
AndEngine
AndEngineAndEngine
AndEngine
TheBeege
 
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Goutam Biswas
 
Compose Camp - Session2.pdf
Compose Camp - Session2.pdfCompose Camp - Session2.pdf
Compose Camp - Session2.pdf
GDSCAtharvaCollegeOf
 
CIS 170 Inspiring Innovation -- cis170.com
CIS 170 Inspiring Innovation -- cis170.comCIS 170 Inspiring Innovation -- cis170.com
CIS 170 Inspiring Innovation -- cis170.com
kopiko104
 

Similaire à Jenkins CI/CD setup for iOS in Mac OSX (20)

CI & CD- mobile application
CI & CD- mobile applicationCI & CD- mobile application
CI & CD- mobile application
 
CI & CD- mobile application
CI & CD- mobile applicationCI & CD- mobile application
CI & CD- mobile application
 
Using galen framework for automated cross browser layout testing
Using galen framework for automated cross browser layout testingUsing galen framework for automated cross browser layout testing
Using galen framework for automated cross browser layout testing
 
Containers Lab
Containers Lab Containers Lab
Containers Lab
 
Mixpanel Integration in Android
Mixpanel Integration in AndroidMixpanel Integration in Android
Mixpanel Integration in Android
 
Jenkins
JenkinsJenkins
Jenkins
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Titanium Appcelerator - Beginners
Titanium Appcelerator - BeginnersTitanium Appcelerator - Beginners
Titanium Appcelerator - Beginners
 
Homestead demo
Homestead demoHomestead demo
Homestead demo
 
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
Firebase crashlytics integration in iOS swift (dSYM File Required Problem Res...
 
Jenkins Setup Document
Jenkins Setup DocumentJenkins Setup Document
Jenkins Setup Document
 
Lesson 02 - React Native Development Environment Setup
Lesson 02 - React Native Development Environment SetupLesson 02 - React Native Development Environment Setup
Lesson 02 - React Native Development Environment Setup
 
CIS 170 Become Exceptional--cis170.com
CIS 170 Become Exceptional--cis170.comCIS 170 Become Exceptional--cis170.com
CIS 170 Become Exceptional--cis170.com
 
Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson Creating Sentiment Line Chart with Watson
Creating Sentiment Line Chart with Watson
 
Final NEWS.pdf
Final NEWS.pdfFinal NEWS.pdf
Final NEWS.pdf
 
Final NewsApp.pdf
Final NewsApp.pdfFinal NewsApp.pdf
Final NewsApp.pdf
 
AndEngine
AndEngineAndEngine
AndEngine
 
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
Installation Process Of New Gen Lib Oss On Windows Xp For Library Automation ...
 
Compose Camp - Session2.pdf
Compose Camp - Session2.pdfCompose Camp - Session2.pdf
Compose Camp - Session2.pdf
 
CIS 170 Inspiring Innovation -- cis170.com
CIS 170 Inspiring Innovation -- cis170.comCIS 170 Inspiring Innovation -- cis170.com
CIS 170 Inspiring Innovation -- cis170.com
 

Plus de Gagan Vishal Mishra

iOS Versions history
iOS Versions historyiOS Versions history
iOS Versions history
Gagan Vishal Mishra
 
Core data optimization
Core data optimizationCore data optimization
Core data optimization
Gagan Vishal Mishra
 
Linking between JIRA & GIT, Smart Commit Command
Linking between JIRA & GIT, Smart Commit Command Linking between JIRA & GIT, Smart Commit Command
Linking between JIRA & GIT, Smart Commit Command
Gagan Vishal Mishra
 
Backbase CXP Manager Setup
Backbase CXP Manager SetupBackbase CXP Manager Setup
Backbase CXP Manager Setup
Gagan Vishal Mishra
 
Dynamic databinding
Dynamic databindingDynamic databinding
Dynamic databinding
Gagan Vishal Mishra
 
Visual Formatting Language in iOS
Visual Formatting Language in iOSVisual Formatting Language in iOS
Visual Formatting Language in iOS
Gagan Vishal Mishra
 
Search API
Search APISearch API
IBDesignable & IBInspectible
IBDesignable & IBInspectibleIBDesignable & IBInspectible
IBDesignable & IBInspectible
Gagan Vishal Mishra
 
Core Data Performance Guide Line
Core Data Performance Guide LineCore Data Performance Guide Line
Core Data Performance Guide Line
Gagan Vishal Mishra
 

Plus de Gagan Vishal Mishra (9)

iOS Versions history
iOS Versions historyiOS Versions history
iOS Versions history
 
Core data optimization
Core data optimizationCore data optimization
Core data optimization
 
Linking between JIRA & GIT, Smart Commit Command
Linking between JIRA & GIT, Smart Commit Command Linking between JIRA & GIT, Smart Commit Command
Linking between JIRA & GIT, Smart Commit Command
 
Backbase CXP Manager Setup
Backbase CXP Manager SetupBackbase CXP Manager Setup
Backbase CXP Manager Setup
 
Dynamic databinding
Dynamic databindingDynamic databinding
Dynamic databinding
 
Visual Formatting Language in iOS
Visual Formatting Language in iOSVisual Formatting Language in iOS
Visual Formatting Language in iOS
 
Search API
Search APISearch API
Search API
 
IBDesignable & IBInspectible
IBDesignable & IBInspectibleIBDesignable & IBInspectible
IBDesignable & IBInspectible
 
Core Data Performance Guide Line
Core Data Performance Guide LineCore Data Performance Guide Line
Core Data Performance Guide Line
 

Dernier

JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 

Dernier (20)

JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 

Jenkins CI/CD setup for iOS in Mac OSX

  • 1. Jenkins Setup freestyle and pipeline for iOS apps By: Gagan Vishal Mishra
  • 2. Introduction In this tutorial we will do Jenkins CI/CD setup for iOS app in  Freestyle  Pipeline Pre-Requisites: Must have  Mac Machine.  Java 1.8 installed on Mac.  Latest Xcode install on Mac.  Signing Certificate and Provisioning profile installed.
  • 3. Installation Jenkins native installer has been deprecated. Now Jenkins can be install using the Homebrew package.  Install Homebrew package https://brew.sh/ in you dont have already. One completed run following command on Terminal  brew install jenkins-lts Installations details link can be found on https://jenkins.io/download/lts/macos/
  • 4. Installation When the installer finishes, open localhost:8080 in your browser, you will get below screen Copy and paste initialAdminPassword from given path and click continue.
  • 5. Installation From Customize Jenkins screen, select ‘Install Suggested plugins Next screen will start download and installing of plugins.
  • 6. Installation This will take several minutes, If any installation is getting fail, then click ‘Retry’ button Next screen would be account setup screen.
  • 7. Installation Now create your admin account — here entering admin for both Username and Password works fine. Next screen would be Instance Configuration screen.
  • 8. Installation On this screen click ‘Not Now’ After this screen, one more screen will appear, click ‘Start using Jenkins’. Now you are done with installation process. Next we will configure Jenkins for Xcode plugin.
  • 9. Add Xcode plugin From left hand side  Click ‘Manage Jenkins’  Select ‘Manage plugins’  Search for ‘Xcode Integration’ and ‘SICCI for Xcode plugin’  Click on ‘Download and Install’  Restart your Jenkins. Now you can see these two plugins into ‘Installed plugin’.
  • 10. Freestyle job From left hand side, Click on ‘New Item’, On next page  Enter your app name  Select you ‘Freestyle project’  Click ‘OK’
  • 11. Freestyle job On This screen, under ‘General tab’  Enter app description.  Select ‘GitHub project’ and enter you repo url.
  • 12. Freestyle job On the same screen, under ‘Source Code Management’  Enter Repository URL.  Select your Git credential under ‘Credentials’. You can add you credentials by selecting ‘add’.  Specify your branch.
  • 13. Freestyle job On the same screen, under ‘Build Triggers’  Select ‘Trigger for GITScm polling’. Here you can make your own choice depends on your requirement.
  • 14. Freestyle job On the same screen, under ‘Build Environment’ Make following setup
  • 15. Freestyle job On the same screen, under ‘Build’, Click on ‘Add Build step’ and select ‘Xcode’ from dropdown.  Enter ‘Development team id’ which can be found from Keychain.  Click ‘Settings’
  • 16. Freestyle job On the same setting screen, under ‘Build’  Select ‘Clean before build?’ checkmark.  Enter Configuration, Xcode Schema File.  Select ‘Pack application, build and sign .ipa’ checkmark,  Add ‘Export method’ (Should be one in 'development', 'ad- hoc', 'enterprise' or 'app-store'.) Select following check mark  Upload Bitcode  Upload Symbols  Compile Bitcode  Pack on demand resources  Strip Swift Symbols Screen would be look like in next screen
  • 17. Freestyle job On the same setting screen, under ‘Build’
  • 18. Freestyle job On the same setting screen, under ‘Code signing & OS X keychain options’ select automatic
  • 19. Freestyle job On the same screen, under ‘Advanced Xcode build options’  Add your workspace filepath (if you have workspace)  Add your build output directory. It will contain generated IPA file.
  • 20. Freestyle job Now you are done with Freestyle job setup.  Click on apply and save.  Click on ‘Build Now’ from available options. Now you are done with freestyle job. Yeahhhhhhh
  • 21. Pipeline job Pipeline jobs can be useful  If you want to run multiple build in different environment.  Run parallel tests.  Add different steps in build process. In a Jenkins pipeline, every job or event has some sort of dependency on at least one or more events. For example
  • 22. Pipeline job Before setting pipeline job, we have to add GIT credentials under ‘Credentials’. Once credentials are added, note down ‘credentials id’ for future auth process in Pipeline script.
  • 23. Pipeline job From left hand side on Jenkins, click ‘new item’  Enter app name  Select ‘Pipeline’
  • 24. Pipeline job On Next screen  Enter app description and build trigger option (If required)
  • 25. Pipeline job On the same screen, under ‘Pipeline’  Under definition, select ‘pipeline script’  Copy Script in an preferred editor and edit branches, credentialsId, bundleID, developmentTeamID, xcodeWorkspaceFile, App store credentials etc and click save.
  • 26. Pipeline job Now click on ‘Build Now’  Build will start running.  You can each steps of the build progress.
  • 27. DONE, Now you are able to add CI/CD to your iOS projects. Connect me on github/gagan5278

Notes de l'éditeur

  1. Script available at https://gist.github.com/Gagan5278/f849ca27e7c647ee27b89c3e8cc86904
  2. Script available at https://gist.github.com/Gagan5278/f849ca27e7c647ee27b89c3e8cc86904
  3. Script available at https://gist.github.com/Gagan5278/f849ca27e7c647ee27b89c3e8cc86904