SlideShare a Scribd company logo
Continuous Integration
       at Wooga
I’m lazy!
I hate repetitive work!
I make mistakes!
Deploying iPhone App?
Continuous Integration for iOS (iOS User Group Berlin)
Let someone else do it...
Continuous Integration
Continuous Integration
    Automate the build
    Build every commit
    Make build self-testing
    Everyone can see the results
    of the latest build
Continuous Integration
    Automate the build
    Build every commit
    Make build self-testing
    Everyone can see the results
    of the latest build
Continuous Integration for iOS (iOS User Group Berlin)
Continuous Integration for iOS (iOS User Group Berlin)
http://xcloud.me/
http://jenkins-ci.org/
Automate the build
Build every commit
Make build self-testing
Everyone can see the results
of the latest build
Continuous Integration for iOS (iOS User Group Berlin)
Continuous Integration for iOS (iOS User Group Berlin)
every commit
on

            Snapshot / Release
                             manuall
                                     y
... requires different bundle identifier ...
PlistBuddy

$ /usr/libexec/PlistBuddy 
-c "Set :CFBundleIdentifier net.wooga.XXX.snapshot"

$ /usr/libexec/PlistBuddy 
-c "Set :CFBundleIdentifier net.wooga.XXX.release"
... now we need individual certificates ...
Configurations
... update Jenkins ...
Snapshot
Automate the build
Build every commit
Make build self-testing
Everyone can see the results
of the latest build
Running Unit Tests

$ xcodebuild 
  -project ./Game/PocketUniverse.xcodeproj 
  -target ***Tests 
  -configuration Debug -sdk iphonesimulator 
  | ./ocunit2junit.rb
$ xcodebuild 
  -project ./Game/PocketUniverse.xcodeproj 
  -target ***Tests 
  -configuration Debug -sdk iphonesimulator 
  | ./ocunit2junit.rb
Continuous Integration for iOS (iOS User Group Berlin)
Testing with Kiwi




https://github.com/MattesGroeger/OCUnit2JUnit
Validation
$ /usr/bin/rake validate_config

Error: element decl. 'xpLevel', attribute 'type':
The QName value 'xpLevelDefinition' does not
resolve to a(n) type definition. at Schema.xsd:71.

Finished: FAILURE
Automate the build
Build every commit
Make build self-testing
Everyone can see the results
of the latest build
Over-The-Air
                    Distribution
                    Live Crash Reports
                    Analytics


www.hockeyapp.net
Continuous Integration for iOS (iOS User Group Berlin)
Upload new version
curl 
  -F "status=2" 
  -F "notify=0" 
  -F "notes=New version!" 
  -F "notes_type=0" 
  -F "ipa=@XXX-InHouseSnapshot-${BUILD_NUMBER}.ipa" 
  -F "dsym=@XXX.app.dSYM.zip" 
  -H "X-HockeyAppToken: ***" 
  https://rink.hockeyapp.net/api/2/apps/***/app_versions
Continuous Integration for iOS (iOS User Group Berlin)
Continuous Integration for iOS (iOS User Group Berlin)
Jenkins Remote Access API
JENKINS_URL/job/JOBNAME/BUILD/api/json
github.com/MattesGroeger/jenkins-changelog
Continuous Integration for iOS (iOS User Group Berlin)
Automate the build
Build every commit
Make build self-testing
Everyone can see the results
of the latest build
Now we have more time ...
Continuous Integration for iOS (iOS User Group Berlin)
Continuous Integration for iOS (iOS User Group Berlin)
Section
Questions?
  MattesGroeger
  jobs.wooga.com

More Related Content

PPTX
Gdg ionic 2
PDF
Ionic2
PDF
Site Testing with CasperJS
PDF
iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...
PPTX
Deploy Node.js application in Heroku using Eclipse
PDF
Haibu: dev deployment is fast and easy again
PPT
Yeoman
PDF
Fastlane - Automation and Continuous Delivery for iOS Apps
Gdg ionic 2
Ionic2
Site Testing with CasperJS
iOS Parallel Automation - Viktar Karanevich - Mobile Test Automation Meetup (...
Deploy Node.js application in Heroku using Eclipse
Haibu: dev deployment is fast and easy again
Yeoman
Fastlane - Automation and Continuous Delivery for iOS Apps

What's hot (19)

PPT
sbt 0.10 for beginners?
PPT
Lifthub (#rpscala 26)
PPT
Lifthub (rpscala #31)
PDF
Quickly function add by Eclipse Monkey
PPT
Auto Build
PDF
Get that Corner Office with Angular 2 and Electron
PDF
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
PPTX
Node.js debugging
PPT
Vagrant
PDF
Vagrant for local and team WordPress Development
PDF
Yeoman Workflow
PPTX
CI/CD for android
PDF
Cocoa pods
PDF
為 Node.js 專案打造專屬管家進行開發流程整合及健康檢測
PDF
20150727 Development tools for Firefox OS apps
PDF
Роман Лютиков "Web Apps Performance & JavaScript Compilers"
PDF
Using JHipster for generating Angular/Spring Boot apps
PDF
HotPush with Ionic 2 and CodePush
PDF
Sw install with_without_docker
sbt 0.10 for beginners?
Lifthub (#rpscala 26)
Lifthub (rpscala #31)
Quickly function add by Eclipse Monkey
Auto Build
Get that Corner Office with Angular 2 and Electron
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
Node.js debugging
Vagrant
Vagrant for local and team WordPress Development
Yeoman Workflow
CI/CD for android
Cocoa pods
為 Node.js 專案打造專屬管家進行開發流程整合及健康檢測
20150727 Development tools for Firefox OS apps
Роман Лютиков "Web Apps Performance & JavaScript Compilers"
Using JHipster for generating Angular/Spring Boot apps
HotPush with Ionic 2 and CodePush
Sw install with_without_docker
Ad

Viewers also liked (20)

PDF
Getting the Most our of your Tools_FrontEnd DevConf2013_Minsk
PDF
JRubyConf2013_Tim Lossen_All your core
PDF
Designing for Scale
PDF
NoSQL Games_NoSQL Roadshow Berlin
PDF
Erlang as a Cloud Citizen
PDF
When Devs Do Ops
PDF
Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)
PDF
Stateful Application Server_JRubyConf13_Lukas Rieder
PDF
Games for the Masses: Scaling Rails to the Extreme
PDF
Metrics. Driven. Design. (Developer Conference Hamburg 2012)
PDF
How to scale a company - game teams at Wooga
PDF
Event Stream Processing with Kafka (Berlin Buzzwords 2012)
PDF
Soft shake 2013 - make use of sonar on your mobile developments
PDF
2013 04-29-evolution of backend
PDF
More than syntax
PDF
You are not alone - Scaling multiplayer games
PDF
Stateful_Application_Server_RuPy 2012_Brno
PDF
Painful success - lessons learned while scaling up
PDF
Wooga: Internationality meets Agility @Zutaten 2013
PDF
NoSQL Games
Getting the Most our of your Tools_FrontEnd DevConf2013_Minsk
JRubyConf2013_Tim Lossen_All your core
Designing for Scale
NoSQL Games_NoSQL Roadshow Berlin
Erlang as a Cloud Citizen
When Devs Do Ops
Architecture Evolution at Wooga (AWS Cloud Computing for Developers,)
Stateful Application Server_JRubyConf13_Lukas Rieder
Games for the Masses: Scaling Rails to the Extreme
Metrics. Driven. Design. (Developer Conference Hamburg 2012)
How to scale a company - game teams at Wooga
Event Stream Processing with Kafka (Berlin Buzzwords 2012)
Soft shake 2013 - make use of sonar on your mobile developments
2013 04-29-evolution of backend
More than syntax
You are not alone - Scaling multiplayer games
Stateful_Application_Server_RuPy 2012_Brno
Painful success - lessons learned while scaling up
Wooga: Internationality meets Agility @Zutaten 2013
NoSQL Games
Ad

Similar to Continuous Integration for iOS (iOS User Group Berlin) (20)

PDF
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
PDF
Continous Delivering a PHP application
PDF
Turnkey Continuous Delivery
PDF
Deploying Symfony | symfony.cat
PDF
The Symfony CLI
PDF
One commit, one release. Continuously delivering a Symfony project.
PDF
Continuous Integration with Hackintosh
PPTX
Jenkins presentation
PDF
Continuous Web Performance Monitoring with Jenkins
PDF
Release with confidence
PDF
Lesson 02 - React Native Development Environment Setup
PPT
Continuous Integration using Cruise Control
PDF
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
PDF
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
PDF
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...
PDF
IOS 11 setup with appium latest
PDF
DevOps(4) : Ansible(2) - (MOSG)
PDF
Graduating to Jenkins CI for Ruby(-on-Rails) Teams
PDF
Gitlab and Lingvokot
PPTX
Jenkins multibranch pipeline workshop sep 2018
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Continous Delivering a PHP application
Turnkey Continuous Delivery
Deploying Symfony | symfony.cat
The Symfony CLI
One commit, one release. Continuously delivering a Symfony project.
Continuous Integration with Hackintosh
Jenkins presentation
Continuous Web Performance Monitoring with Jenkins
Release with confidence
Lesson 02 - React Native Development Environment Setup
Continuous Integration using Cruise Control
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
Automating Your Way out of the Dark Ages: Our Experience with (And Without) P...
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...
IOS 11 setup with appium latest
DevOps(4) : Ansible(2) - (MOSG)
Graduating to Jenkins CI for Ruby(-on-Rails) Teams
Gitlab and Lingvokot
Jenkins multibranch pipeline workshop sep 2018

More from Wooga (20)

PPTX
Story of Warlords: Bringing a turn-based strategy game to mobile
PDF
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
PDF
In it for the long haul - How Wooga boosts long-term retention
PDF
Leveling up in localization! - Susan Alma & Dario Quondamstefano
PDF
Evoloution of Ideas
PDF
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
PDF
Saying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
PDF
Innovation dank DevOps (DevOpsCon Berlin 2015)
PDF
Big Fish, small pond - strategies for surviving in a maturing market - Ed Biden
PDF
Review mining aps2014 berlin
PDF
Riak & Wooga_Geeek2Geeek Meetup2014 Berlin
PDF
Staying in the Game: Game localization practices for the mobile market
PDF
Startup Weekend_Makers and Games_Philipp Stelzer
PDF
DevOps goes Mobile (daho.am)
PDF
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
PDF
CodeFest 2014_Mobile Game Development
PDF
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
PDF
How to hire the best people for your startup-Gitta Blat-Head of People
PDF
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
PDF
Pocket Gamer Connects 2014_The Experience of Entering the Korean Market
Story of Warlords: Bringing a turn-based strategy game to mobile
Instagram Celebrities: are they the new cats? - Targetsummit Berlin 2015
In it for the long haul - How Wooga boosts long-term retention
Leveling up in localization! - Susan Alma & Dario Quondamstefano
Evoloution of Ideas
Entitas System Architecture with Unity - Maxim Zaks and Simon Schmid
Saying No to the CEO: A Deep Look at Independent Teams - Adam Telfer
Innovation dank DevOps (DevOpsCon Berlin 2015)
Big Fish, small pond - strategies for surviving in a maturing market - Ed Biden
Review mining aps2014 berlin
Riak & Wooga_Geeek2Geeek Meetup2014 Berlin
Staying in the Game: Game localization practices for the mobile market
Startup Weekend_Makers and Games_Philipp Stelzer
DevOps goes Mobile (daho.am)
DevOps goes Mobile - Jax 2014 - Jesper Richter-Reichhelm
CodeFest 2014_Mobile Game Development
Jelly Splash: Puzzling your way to the top of the App Stores - GDC 2014
How to hire the best people for your startup-Gitta Blat-Head of People
Two Ann(e)s and one Julia_Wooga Lady Power from Berlin_SGA2014
Pocket Gamer Connects 2014_The Experience of Entering the Korean Market

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Machine learning based COVID-19 study performance prediction
PPT
Teaching material agriculture food technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Approach and Philosophy of On baking technology
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Spectroscopy.pptx food analysis technology
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Agricultural_Statistics_at_a_Glance_2022_0.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Machine learning based COVID-19 study performance prediction
Teaching material agriculture food technology
Dropbox Q2 2025 Financial Results & Investor Presentation
sap open course for s4hana steps from ECC to s4
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
NewMind AI Weekly Chronicles - August'25 Week I
Diabetes mellitus diagnosis method based random forest with bat algorithm
Approach and Philosophy of On baking technology
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Spectral efficient network and resource selection model in 5G networks
Building Integrated photovoltaic BIPV_UPV.pdf
Spectroscopy.pptx food analysis technology
MIND Revenue Release Quarter 2 2025 Press Release
Chapter 3 Spatial Domain Image Processing.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy

Continuous Integration for iOS (iOS User Group Berlin)