Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Managing your dependencies using Carthage
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Romain Pouclet
February 10, 2015
Programming
210
1
Share
Managing your dependencies using Carthage
Using a dependency manager is cool, but you know what is cooler? ANOTHER DEPENDENCY MANAGER!
Romain Pouclet
February 10, 2015
More Decks by Romain Pouclet
See All by Romain Pouclet
Getting punched in the face for fun
romainpouclet
0
73
Buddybuild - Android Montreal - June 2017
romainpouclet
0
120
Closed source is best source
romainpouclet
0
510
Save countless hours of work with this one simple trick - Fastlane tools
romainpouclet
1
530
Taking a peek at ReactiveCocoa 3.0
romainpouclet
0
150
Cocoaheads Montréal: Xcode Bots
romainpouclet
1
140
Cocoaheads Montréal : Automated testing for iOS
romainpouclet
1
280
Intégration continue pour iOS
romainpouclet
0
560
Other Decks in Programming
See All in Programming
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.7k
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
190
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
320
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
1.8k
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
Nuxt Server Components
wattanx
0
260
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.5k
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
5.1k
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
230
Don't Prompt Harder, Structure Better
kitasuke
0
450
Swift Concurrency Type System
inamiy
0
350
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
180
Featured
See All Featured
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
370
Building AI with AI
inesmontani
PRO
1
870
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
140
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
720
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
160
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
160
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
The SEO Collaboration Effect
kristinabergwall1
0
420
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
520
Amusing Abliteration
ianozsvald
1
150
Rails Girls Zürich Keynote
gr2m
96
14k
Transcript
Managing&your&dependencies&using& CocoaPods&Carthage Cocoaheads)Montréal)02/2015
Why$do$we$need$a$new$dependency$ manager$for$iOS$/$OSX?
We#don't.
Thanks!
Dependency(management? Automa'ng*the*process*of*installing,* upgrading,*configuring,*and*removing*libraries
Cocoapods(VS(Carthage
Cocoapods!VS!Carthage • Ruby&based,&Centralized&repository,&kinda&intrusive • List&dependencies&in&a&“Podfile”,&share&your&libs&using&a&JSON& “podspec”&file • Framework&support&since&0.36 • AutomaKc&doc&generaKon&at&cocoadocs.org
• PLUGINS&(ex:&github.com/orta/cocoapodsPkeys)!
Cocoapods!VS!Carthage h"ps:/ /github.com/search?u48=✓&q=filename%3APodfile
Cocoapods(is(s*ll(a(great(tool(and( you((probably)(don't(need(to(switch
Carthage • S#ll%really%fresh • Another%nice%tool%from%Github • (Painfully?)%wri<en%in%Swi=
Cocoapods(VS(Carthage h"ps:/ /github.com/search?u48=✓&q=filename%3ACartfile
Ge#ng&started&with&Carthage • Visit&github.com/Carthage/Carthage • Go&to&releases&and&download&latest • Open&*.pkg&blahblahblah or ! ~
$ brew install carthage
Ge#ng&started&with&Carthage ! ~ $ carthage
Carthage(leverages(the(power(of(Frameworks • Available)on)OSX)since)~1977)(*reference)required) • Available)on)iOS)since)Facebook)and)Dropbox)figured)a)way)to) cheat • Available)on)iOS)since)iOS)8 • Frameworks)can)contain)a)lot:)Views,)Controls,)Resources)(cf)
WWDC)#416)
A"basic"Cartfile Add#your#dependencies#(github#repo,#URL#to#git#repository)#into#a# Cartfile github "realm/realm-cocoa" == 0.90.3 github "Palleas/ReactiveCSVParser" "master"
Installing)/)Upda.ng)dependencies $ `carthage update` • Carthage)will)fetch)all)the)dependencies)in)the)Carthage/ Checkouts)folder)and)build)the)shared)schemes • A)Cartfile.resolved)that)you/have/to/commit)will)be)generated •
Frameworks)will)be)generated)in)Carthage/Build,)simply)drag) them)in)your)project
Submodules*are*cool*again! $"carthage"update"!!use!submodules (Don't'worry,'Carthage'handle'the'hard'part'automagically)
I"have"been"using"Carthage"for"a"few"weeks" now
I"tested"it"with"a"CSV"parser"I"wrote github.com/Palleas/Reac2veCSVParser
Sharing(my(framework:(share(the(scheme
Sharing(my(framework:(tag(and(push! $ git tag 0.0.1 $ git push origin master
--tags (Note&that&you&can&use&a&branch,&a&commit,&anything&git rev- parse&will&understand)
Adding&my&framework (Because(I(like(my(framework) $ echo 'Palleas/ReactiveCSVParser "~> 0.0.1"' >> Cartfile $
carthage update
Or#if#I#want#to#contribute... $ git clone
[email protected]
:Palleas/Catalog.git $ cd Catalog $ carthage
bootstrap
Some%issues%I%got Adding&a&framework&with&no&shared&schemes *** Fetching realm-cocoa *** Checking out realm-cocoa at
"b30" *** xcodebuild output can be found in /var/folders/qt/nys5f4b154x88ysnv0bccdbm0000gn/T/carthage-xcodebuild.uEWmAC.log Project "TightDbObjcDyn.xcodeproj" has no shared schemes
Project "TightDbObjcDyn.xcodeproj" has no shared schemes (Wat?)
Some%issues%I%got Using&Carthage&(well&actually,&it's&Frameworks)& in&a&command&line&tool (TL;DR:(It's(a(pain)
Con$nuous'Integra$on (Yes,&again.)
Se#ng&up&travis/ci Carthage(is(not(included(in(Travis3ci((yet?) #!/usr/bin/env bash echo "*********** Installing Carthage ***********" brew
update brew install carthage --HEAD
Se#ng&up&travis/ci Carthage(will(build(all(your(schemes,(even(the(one(you( don't(need echo "*********** Installing dependencies with Carthage ***********"
carthage bootstrap --no-build find Carthage/Checkouts -type f -name "*iOS*.xcscheme" -delete carthage build
Conclusion Carthage(is(great.(It(provides(less(features( than(Cocoapods(but(is(easier(to(use
Thanks! (Want&a&book?) (Photos'©'Camille'Furno'!)