cocoapods for private libraries

40
COCOAPODS for private libraries Adrien Humilière - Captain Train Cocoaheads Paris, 11/02/2016

Upload: cocoaheads-france

Post on 23-Jan-2018

4.651 views

Category:

Software


0 download

TRANSCRIPT

Page 1: CocoaPods for private libraries

☙ COCOAPODS ❧for private libraries

Adrien Humilière - Captain Train

Cocoaheads Paris, 11/02/2016

Page 2: CocoaPods for private libraries

☙ Cocoapods? ❧ Cocoaheads Paris, 11/02/2016

Page 3: CocoaPods for private libraries

Dependency manager

Cocoaheads Paris, 11/02/2016

Page 4: CocoaPods for private libraries

+ 3000 pods

Cocoaheads Paris, 11/02/2016

Page 5: CocoaPods for private libraries

platform :ios, '8.0'

target 'App' do pod 'Alamofire', '~> 3.1.0'end

Cocoaheads Paris, 11/02/2016

Page 6: CocoaPods for private libraries

$ pod install$ open App.xcworkspace

Cocoaheads Paris, 11/02/2016

Page 7: CocoaPods for private libraries

☙ Private pods ❧ Cocoaheads Paris, 11/02/2016

Page 8: CocoaPods for private libraries

1 Create a Pods repository

Cocoaheads Paris, 11/02/2016

Page 9: CocoaPods for private libraries

Cocoaheads Paris, 11/02/2016

Page 10: CocoaPods for private libraries

$ pod repo add adhumi [email protected]:adhumi/podspecs.git

Cocoaheads Paris, 11/02/2016

Page 11: CocoaPods for private libraries

Cocoaheads Paris, 11/02/2016

Page 12: CocoaPods for private libraries

2 Make a Pod

Cocoaheads Paris, 11/02/2016

Page 13: CocoaPods for private libraries

$ cd MyPrivateLibrary$ pod create spec MyPrivateLibrary

Cocoaheads Paris, 11/02/2016

Page 14: CocoaPods for private libraries

Pod::Spec.new do |s| s.name = "MyPrivateLibrary" s.version = "1.0.0" s.summary = "Lorem ipsum dolor sit amet."

[...]end

Cocoaheads Paris, 11/02/2016

Page 15: CocoaPods for private libraries

$ pod repo push adhumi MyPrivateLibrary.podspec

Cocoaheads Paris, 11/02/2016

Page 16: CocoaPods for private libraries

Cocoaheads Paris, 11/02/2016

Page 17: CocoaPods for private libraries

3 Use my private pod

Cocoaheads Paris, 11/02/2016

Page 18: CocoaPods for private libraries

platform :ios, '8.0'

target 'App' do pod 'Alamofire', '~> 3.1.0' pod 'MyPrivateLibrary'end

Cocoaheads Paris, 11/02/2016

Page 19: CocoaPods for private libraries

$ pod installUpdating local specs repositories

Analyzing dependencies[!] Unable to find a specification for `TSPTableView`

Cocoaheads Paris, 11/02/2016

Page 20: CocoaPods for private libraries

source '[email protected]:adhumi/podspecs.git'source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'

target 'App' do pod 'Alamofire', '~> 3.1.0' pod 'MyPrivateLibrary'end

Cocoaheads Paris, 11/02/2016

Page 21: CocoaPods for private libraries

$ pod installUpdating local specs repositories

Analyzing dependenciesDownloading dependenciesInstalling Alamofire (3.1.7)Installing MyPrivateLibrary (0.0.1)Generating Pods projectIntegrating client project

[!] Please close any current Xcode sessions and use `App.xcworkspace` for this project from now on.

Cocoaheads Paris, 11/02/2016

Page 22: CocoaPods for private libraries

Cocoaheads Paris, 11/02/2016

Page 23: CocoaPods for private libraries

4 Develop a private library

Cocoaheads Paris, 11/02/2016

Page 24: CocoaPods for private libraries

target 'App' do pod 'Alamofire', '~> 3.1.0' pod 'MyPrivateLibrary', :path => '~/MyPrivateLibrary'end

Cocoaheads Paris, 11/02/2016

Page 25: CocoaPods for private libraries

$ pod update

Cocoaheads Paris, 11/02/2016

Page 26: CocoaPods for private libraries

Cocoaheads Paris, 11/02/2016

Page 27: CocoaPods for private libraries

…Cocoaheads Paris, 11/02/2016

Page 28: CocoaPods for private libraries

$ vim MyPrivateLibrary.podspec$ git commit$ git tag 1.0.1$ git push$ pod repo push adhumi MyPrivateLibrary.podspec

Cocoaheads Paris, 11/02/2016

Page 29: CocoaPods for private libraries

target 'App' do pod 'Alamofire', '~> 3.1.0' pod 'MyPrivateLibrary'end

$ pod update

Cocoaheads Paris, 11/02/2016

Page 30: CocoaPods for private libraries

Cocoaheads Paris, 11/02/2016

Page 31: CocoaPods for private libraries

☙ Why? ❧Cocoaheads Paris, 11/02/2016

Page 32: CocoaPods for private libraries

Internal Libs

Cocoaheads Paris, 11/02/2016

Page 33: CocoaPods for private libraries

Forked external Libs

Cocoaheads Paris, 11/02/2016

Page 34: CocoaPods for private libraries

External Libs withno Cocoapods support

Cocoaheads Paris, 11/02/2016

Page 35: CocoaPods for private libraries

☙ Tips ❧Cocoaheads Paris, 11/02/2016

Page 36: CocoaPods for private libraries

HTTP vs. SSH

Cocoaheads Paris, 11/02/2016

Page 37: CocoaPods for private libraries

--allow-warnings--use-libraries

Cocoaheads Paris, 11/02/2016

Page 38: CocoaPods for private libraries

Thanks :-)Cocoaheads Paris, 11/02/2016

Page 39: CocoaPods for private libraries

Questions ?captaintrain.com/jobs

Cocoaheads Paris, 11/02/2016

Page 40: CocoaPods for private libraries

@[email protected]

Cocoaheads Paris, 11/02/2016