Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Introduction to Cocoapods
Search
Alex Manarpies
October 15, 2013
Programming
87
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to Cocoapods
Slides for the talk on Cocoapods I gave at Mobel in Brussels (VRT, Oct 2013).
Alex Manarpies
October 15, 2013
Other Decks in Programming
See All in Programming
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
600
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
150
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
Next.js: The final boss of Web Performance
guaca
0
260
The Rails Doctrine Decade
koic
2
590
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
700
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
420
Railsバージョンを4倍にした話
optim
0
390
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
3.7k
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
Practical Orchestrator
shlominoach
192
12k
Ethics towards AI in product and experience design
skipperchong
2
430
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
280
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
Code Review Best Practice
trishagee
74
20k
BBQ
matthewcrist
90
10k
Transcript
COCOAPODS iOS ! DEPENDENCY MANAGEMENT
HELLO.
WEB ADOBE FLEX iOS✼ WINDOWS [PHONE] 8
None
None
ICON CREDITS: ENDLESSICONS.COM!
TL;DR
None
platform :ios, '6.0’ pod 'JSONKit' pod 'POViewFrameBuilder' pod 'AFNetworking', '~>
1.3.1’ target :test, :exclusive => true do pod 'Kiwi' end 1 2 3 4 5 6 7
“THE BEST WAY TO MANAGE LIBRARY DEPENDENCIES IN OBJECTIVE-C PROJECTS”
— COCOAPODS.ORG
“THE ONLY WAY TO MANAGE LIBRARY DEPENDENCIES IN OBJECTIVE-C PROJECTS?”
+
AUTOMATED DEPENDENCY FETCHING
AUTOMATED SUBDEPENDENCY FETCHING DEPENDENCY
AUTOMATED CONFIGURATION DEPENDENCY SUBDEPENDENCY FETCHING
SCM FRIENDLY
SCM GIT SVN HG FRIENDLY
OPEN SOURCE
DISCOVERABILITY
_
NEW
NEW’ISH’ ± 2 YEARS OLD
FIDDLY SETUP
~
BUNDLER NUGET MAVEN / GRADLE RUBY MSFT JAVA
None
2 METHODS
2 METHODS DIY GIT SUBMODULES
1 RESULT
1 RESULT CONFIGURATION HELL
DIY ⤻ COPY PROJECT ⤻ ADD TARGET DEPENDENCY (BUILD PHASES
TAB) ⤻ LINK BINARY WITH LIBS (+ ADD ANY FRAMEWORKS) ⤻ COPY BUNDLE RESOURCES ⤻ ADD TO HEADER SEARCH PATH ⤻ ADD ‘OTHER LINKER FLAGS’ (E.G. -all_load, -ObjC) ⤻ #IMPORT HEADER FILE
None
GIT $ git submodule add git@somehost:repo path/to/submodule $ git commit
$ git submodule update $ cd path/to/submodule $ git checkout branch $ git pull … ⤻ ADD GIT SUBMODULE
GIT $ git submodule add git@somehost:repo path/to/submodule $ git commit
$ git submodule update $ cd path/to/submodule $ git checkout branch $ git pull … ⤻ ADD GIT SUBMODULE ⤻ GO BACK 2 SLIDES ⤻ REPEAT FOR EACH DEPENDENCY
None
COCOA PODS ⤻ DEFINE DEPENDENCIES IN PODFILE ⤻ RUN ‘POD
INSTALL’ ⤻ #IMPORT HEADER FILE
✓
?
RUBY ❤ GIT
RUBY ❤ GIT + SOME MAGIC?
STATIC LIBRARIES
PUBLIC SPEC REPO LOCAL SPECS LIB REPO LIB REPO LIB
REPO LIB REPO LIB REPO GIT CLONE GIT CLONE GITHUB
BIG-ASS TEXT SLIDE Ὁ
Pod::Spec.new do |s| s.name = "PayPal-iOS-SDK" s.version = "1.3.4" s.summary
= "Accept credit cards and PayPal.." s.description = “The PayPal iOS SDK provides a..” s.homepage = "https://developer.paypal.com/webap..” s.author = 'Paypal' s.source = { :git => "https://github.com/paypal/PayPal-iOS-SDK.git", :tag => "1.3.4" } s.platform = :ios, '5.0' s.public_header_files = 'PayPalMobile/*.h' s.source_files = 'PayPalMobile/*.h' s.preserve_paths = "PayPalMobile/libPayPalMobile.a" s.frameworks = 'AVFoundation', 'AudioToolbox', s.libraries = 'stdc++', 'xml2', 'PayPalMobile' s.xcconfig = {'OTHER_LDFLAGS' => '-lc++ -ObjC' , 'HEADER_SEARCH_PATHS' => '$(SDKROOT)/usr/include/libxml2’, 'LIBRARY_SEARCH_PATHS' => '"$(PODS_ROOT)/PayPal-iOS-.."' } end 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
LIB REPO LIB REPO CONFIG LIB REPO LIB REPO FRAME
WORKS ⤻ GIT CLONE PUBLIC & LOCAL LIBS ⤻ APPLY CONFIG ⤻ APPLY HEADER PATHS, ETC
PRIVATE LIBRARIES ?
CREATE GIT REPO TO HOLD PRIVATE SPECS git init ADD
TO REPO LIST pod repo add CREATE+PUSH SPECS TO PRIVATE SPEC REPO pod spec create
PRIVATELY HOSTED GIT REPO
PRIVATELY HOSTED GIT REPO SSH KEYS
CLOSED SOURCE PROJECTS ?
REGULAR SPEC FILE POINT TO .FRAMEWORK OR .A INSTEAD OF
.M FILES
CONTRIBUTING BACK ☇
⤻ FORK github.com/CocoaPods/Specs ⤻ ADD YOUR SPECS ⤻ SEND PULL
REQUEST ✓
VERSIONING TAGGING
SOME GREAT LIBRARIES ON COCOAPODS ✽
AFNetworking Underscore.m RestKit TestFlight Reachability CorePlot (CocoaControls)
THANK YOU ACEONTECH