SlideShare a Scribd company logo
COCOAPODS
Sane library management for Xcode


 leonard.ehrenfried@gmail.com
      github.com/lenniboy
SO, YOU'RE STARTING A NEW XCODE PROJECT
      Look for some libraries to use in your project
      Maybe an OAuth ibrary?
      How to import it into your project?
INSTALLATION INSTRUCTIONS
1. drag the O u h C i n . c d p o into your project
              At2letxoerj
2. add O u h C i n as a build dependency
         At2let
3. add O u h C i n / * your user header search path in the build settings
         A t 2 l e t * to
4. link your target against O u h C i n (drag the OAuth2Client product from
                             At2let
   OAuth2Client.xcodeproj to your targets Link Binary With Libraries)
5. # m o t " X A t 2 h
     ipr NOuh."
WHY IS MANUAL INSTALLATION PROBLEMATIC?
            Error-prone
            Upgrade path unclear
            No transitive dependencies
WORST OF ALL?
THE LIBRARY SOURCE IS SUPPOSED TO BE ADDED TO VERSION CONTROL!
OTHER LANGUAGES AND PLATFORMS HAVE AUTOMATED ALL OF
                        THIS
               Python has e s _ n t l / i
                           ayisalpp
                      Ruby has g m
                                e
                    JavaScript has n m
                                    p
                     Java has Maven
                    Objective-C has ?
ENTER COCOAPODS
Library dependency management for Xcode projects
Community maintained
Written in Ruby
Modelled after Rubygems
gmisalccaos
 e ntl oopd
GREAT, HOW DOES IT WORK?
1.   Create an Xcode project
2.   Add a P d i e your project folder
             o f l to
3.   Add your dependency to it
4.   pdisal
      o ntl
5.   Compiles your library dependency as a static library
6.   Takes your project and puts it into an Xcode workspace
7.   Adds static library to workspace
8.   You open A p x w r s a e
                 p . c o k p c instead of A p x p o e t
                                                p.crjc
9.   Profit!!1!
DEMO TIME
Cocoapods   sane library management for xcode
ANATOMY OF A PODSPEC
Pd:pcnwd ||
 o:Se.e o s
  snm
   .ae   ='BrgesU'
           MPorsHD
  svrin ='.'
   .eso    05
  spafr =:o
   .ltom   is
  slcne ='I'
   .ies    MT
  ssmay ='niSatvt idctrve.
   .umr    A O ciiy niao iw'
  shmpg ='tp:/ihbcmmtjMPorsHD
   .oeae   hts/gtu.o/ae/BrgesU'
  sato
   .uhr ={'ae Bkvnk'= 'ae@uoisicm,
             Mtj uoisi > mtjbkvnk.o'
            'oahnGog' = 'oahnjgnt }
             Jnta ere  > jnta@d.e'

 ssuc
  .ore   ={:i = 'tp:/ihbcmjgMPorsHDgt,:a = '.'}
            gt > hts/gtu.o/d/BrgesU.i' tg > 05

 ssuc_ie ='.hm'
  .orefls  *{,}

  sfaeok
   .rmwr   ="oerpis
             CrGahc"
ed
 n
IN-HOUSE DEVELOPMENT
Referencing a local folder in a p d p c
                                 ose
Host your own repository of p d p c
                             oses
RANDOM FEATURE OVERVIEW
                     Last night: 589 pods
   Contributing is easy, just fork and create a pull request
Handles difference between ARC and non-ARC dependencies
               : e t : e scopes available
                ts/dv
                 iOS and OSX dependencies
THE END
 QUESTIONS?
cocoapods.org
Cocoapods   sane library management for xcode

More Related Content

What's hot (17)

PDF
Coding in the context era
lestrrat
 
PDF
Painless Deployment with Capistrano
Nick Kugaevsky
 
PDF
Learn watchOS Programming!
Snehal Patil
 
PDF
The Popper Experimentation Protocol and CLI tool
Ivo Jimenez
 
ODP
Build-a-Gem Workshop
Brian Kaney
 
PDF
Python profilers
MinJeong Kim
 
PDF
Kopf @ Python Pizza Berlin, 2019-08-23
Sergey Vasilyev
 
PDF
Simulation in R and Python
Shunichi Otsuka
 
PDF
Give me 15 minutes and i'll change your view of gdb
gregthelaw
 
PDF
Devinsampa nginx-scripting
Tony Fabeen
 
PDF
No Hugging, No Learning
Olaf Alders
 
PPTX
Highload осень 2012 лекция 1
Technopark
 
PPTX
Docker Warsaw Meetup 12/2017 - DockerCon 2017 Recap
Krzysztof Sobczak
 
PPTX
Bamboo Hands on training 2016
Takahiro Yamaki
 
PDF
Puppet loves RSpec, why you should, too
Dennis Rowe
 
PPTX
GDB: A Lot More Than You Knew
Undo
 
PDF
PHP-VCR behat case study
Pascal Thormeier
 
Coding in the context era
lestrrat
 
Painless Deployment with Capistrano
Nick Kugaevsky
 
Learn watchOS Programming!
Snehal Patil
 
The Popper Experimentation Protocol and CLI tool
Ivo Jimenez
 
Build-a-Gem Workshop
Brian Kaney
 
Python profilers
MinJeong Kim
 
Kopf @ Python Pizza Berlin, 2019-08-23
Sergey Vasilyev
 
Simulation in R and Python
Shunichi Otsuka
 
Give me 15 minutes and i'll change your view of gdb
gregthelaw
 
Devinsampa nginx-scripting
Tony Fabeen
 
No Hugging, No Learning
Olaf Alders
 
Highload осень 2012 лекция 1
Technopark
 
Docker Warsaw Meetup 12/2017 - DockerCon 2017 Recap
Krzysztof Sobczak
 
Bamboo Hands on training 2016
Takahiro Yamaki
 
Puppet loves RSpec, why you should, too
Dennis Rowe
 
GDB: A Lot More Than You Knew
Undo
 
PHP-VCR behat case study
Pascal Thormeier
 

Similar to Cocoapods sane library management for xcode (20)

PDF
Cocoa pods iOSDevUK 14 talk: managing your libraries
Diego Freniche Brito
 
PDF
RubyMotion Inspect Conference - 2013. (With speaker notes.)
alloy020
 
PDF
Xcode, Basics and Beyond
rsebbe
 
PDF
Cocoapods Overview - library dependency manager for iOS
Prajwal S Prakash
 
PPTX
CocoaPods.pptx
Nicole and Yoonseo
 
PPTX
Cocoapods
Bill Kunneke
 
PPTX
Private pod support using cocoa pods in ios
Azilen Technologies Pvt. Ltd.
 
PDF
Manage your external libraries with CocoaPods
Juan C Catalan
 
PDF
How cocoapods can enhance your iOS development - Amir Hayek, Toluna
Codemotion Tel Aviv
 
PDF
Errbit & Gitlab
motioneleven
 
PDF
iOS Development - Offline Class for Jasakomer
Andri Yadi
 
PDF
Денис Лебедев-Управление зависимостями с помощью CocoaPods
UA Mobile
 
PDF
ooc - OSDC 2010 - Amos Wenger
Amos Wenger
 
PDF
What Makes Objective C Dynamic?
Kyle Oba
 
PPTX
Creating and Maintaining an Open Source Library
Nicholas Schweitzer
 
PPT
State ofappdevelopment
gillygize
 
PDF
02 c++g3 d
mahago
 
PDF
Using Cocoapods
jeffreysambells
 
PDF
Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...
apidays
 
PDF
NativeBoost
ESUG
 
Cocoa pods iOSDevUK 14 talk: managing your libraries
Diego Freniche Brito
 
RubyMotion Inspect Conference - 2013. (With speaker notes.)
alloy020
 
Xcode, Basics and Beyond
rsebbe
 
Cocoapods Overview - library dependency manager for iOS
Prajwal S Prakash
 
CocoaPods.pptx
Nicole and Yoonseo
 
Cocoapods
Bill Kunneke
 
Private pod support using cocoa pods in ios
Azilen Technologies Pvt. Ltd.
 
Manage your external libraries with CocoaPods
Juan C Catalan
 
How cocoapods can enhance your iOS development - Amir Hayek, Toluna
Codemotion Tel Aviv
 
Errbit & Gitlab
motioneleven
 
iOS Development - Offline Class for Jasakomer
Andri Yadi
 
Денис Лебедев-Управление зависимостями с помощью CocoaPods
UA Mobile
 
ooc - OSDC 2010 - Amos Wenger
Amos Wenger
 
What Makes Objective C Dynamic?
Kyle Oba
 
Creating and Maintaining an Open Source Library
Nicholas Schweitzer
 
State ofappdevelopment
gillygize
 
02 c++g3 d
mahago
 
Using Cocoapods
jeffreysambells
 
Apidays Paris 2023 - Forget TypeScript, Choose Rust to build Robust, Fast and...
apidays
 
NativeBoost
ESUG
 
Ad

Recently uploaded (20)

PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
July Patch Tuesday
Ivanti
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
July Patch Tuesday
Ivanti
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Ad

Cocoapods sane library management for xcode

  • 2. SO, YOU'RE STARTING A NEW XCODE PROJECT Look for some libraries to use in your project Maybe an OAuth ibrary? How to import it into your project?
  • 3. INSTALLATION INSTRUCTIONS 1. drag the O u h C i n . c d p o into your project At2letxoerj 2. add O u h C i n as a build dependency At2let 3. add O u h C i n / * your user header search path in the build settings A t 2 l e t * to 4. link your target against O u h C i n (drag the OAuth2Client product from At2let OAuth2Client.xcodeproj to your targets Link Binary With Libraries) 5. # m o t " X A t 2 h ipr NOuh."
  • 4. WHY IS MANUAL INSTALLATION PROBLEMATIC? Error-prone Upgrade path unclear No transitive dependencies
  • 5. WORST OF ALL? THE LIBRARY SOURCE IS SUPPOSED TO BE ADDED TO VERSION CONTROL!
  • 6. OTHER LANGUAGES AND PLATFORMS HAVE AUTOMATED ALL OF THIS Python has e s _ n t l / i ayisalpp Ruby has g m e JavaScript has n m p Java has Maven Objective-C has ?
  • 7. ENTER COCOAPODS Library dependency management for Xcode projects Community maintained Written in Ruby Modelled after Rubygems gmisalccaos e ntl oopd
  • 8. GREAT, HOW DOES IT WORK? 1. Create an Xcode project 2. Add a P d i e your project folder o f l to 3. Add your dependency to it 4. pdisal o ntl 5. Compiles your library dependency as a static library 6. Takes your project and puts it into an Xcode workspace 7. Adds static library to workspace 8. You open A p x w r s a e p . c o k p c instead of A p x p o e t p.crjc 9. Profit!!1!
  • 11. ANATOMY OF A PODSPEC Pd:pcnwd || o:Se.e o s snm .ae ='BrgesU' MPorsHD svrin ='.' .eso 05 spafr =:o .ltom is slcne ='I' .ies MT ssmay ='niSatvt idctrve. .umr A O ciiy niao iw' shmpg ='tp:/ihbcmmtjMPorsHD .oeae hts/gtu.o/ae/BrgesU' sato .uhr ={'ae Bkvnk'= 'ae@uoisicm, Mtj uoisi > mtjbkvnk.o' 'oahnGog' = 'oahnjgnt } Jnta ere > [email protected]' ssuc .ore ={:i = 'tp:/ihbcmjgMPorsHDgt,:a = '.'} gt > hts/gtu.o/d/BrgesU.i' tg > 05 ssuc_ie ='.hm' .orefls *{,} sfaeok .rmwr ="oerpis CrGahc" ed n
  • 12. IN-HOUSE DEVELOPMENT Referencing a local folder in a p d p c ose Host your own repository of p d p c oses
  • 13. RANDOM FEATURE OVERVIEW Last night: 589 pods Contributing is easy, just fork and create a pull request Handles difference between ARC and non-ARC dependencies : e t : e scopes available ts/dv iOS and OSX dependencies