• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
CocoaPods
 

CocoaPods

on

  • 1,612 views

 

Statistics

Views

Total Views
1,612
Views on SlideShare
1,612
Embed Views
0

Actions

Likes
4
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

CocoaPods CocoaPods Presentation Transcript

  • Advanced dependencies with CocoaPodsDenis Lebedev@delebedev
  • Why do we need it?
  • Drag & drop
  • Git submodule
  • 3rd-party(do they exist at all?)
  • CocoaPodshttp://cocoapods.org
  • Install$ sudo gem install cocoapods
  • Create Podfileplatform :iospod AFNetworkingpod MBProgressHUDpod OHAttributedLabelpod MagicalRecord, = 1.8.3pod EGOImageLoadingpod AQGridViewpod Facebook-iOS-SDKpod DCIntrospectpod OCMock
  • Add libs to the project $ pod install
  • How it works
  • Write own specs$ pod spec create MySpec$vim MySpec.podspec$pod spec line MySpec.podspec
  • Spec example
  • Contribute(>650 podspecs already)
  • Podfile options
  • Platformplatform: ios, 4.0 Versioningpod ‘EgoImageView’, ‘<=1.2’pod ‘EgoImageView’, ‘:head’
  • Multiple targetspod RestKittarget :debug do pod CocoaLumberjackendtarget :test, :exclusive => true do link_with “MyAppTests” pod Kiwiend
  • Turn off all warnings in lib sources inhibit_all_warnings!
  • Podspec sources
  • Spec in the root of lib repopod AFNetworking, :git => https://github.com/gowalla/AFNetworking.git, :commit => 082f8319af
  • Lib without podspecpod JSONKit, :podspec => https://raw.github.com/gist/1346394/1d26570f68ca2d72/JSONKit.podspec
  • Lib without any available podspecpod do |spec|spec.name = JSONKitspec.version = 1.4spec.source = { :git => https://github.com/johnezang/JSONKit.git, :tag => v1.4 }spec.source_files = JSONKit.*end
  • Local pod pod libAwesome, :local => ~/path/libAwesome*podspec should be in the folder
  • Pod specification
  • Dependencies...s.dependency = ‘JSONKit’, ‘<1.4’...
  • Subspecspod ‘RestKit/JSON’Pod::Spec.new do |s| s.name = RestKit s.preferred_dependency = JSON ... s.subspec JSON do |js| js.dependency RestKit/ObjectMapping/JSON js.dependency RestKit/ObjectMapping/CoreData js.dependency RestKit/UI end s.subspec XML do |xs| ... end ...end
  • Moreweak_frameworkss.osx.source_files = ‘MyNSTableView.{h,m}’s.ios.source_files = ‘MySuperUITableView.{h,m}’
  • Share pod specifications
  • ‘Private’ specs repo$ pod repo add my-spec-repo http://github.com/my-account/spec-repo.git$ pod push my-spec-repo$ cd ~/.cocoapods/my-spec-repo$ git remote add upstream git://github.com/CocoaPods/Specs.git
  • Public specs repo* $ cd ~/.cocoapods/master $ git remote set-url origin git@github.com:CocoaPods/Specs.git*If you have push access to master-repo
  • ‘Appstore’ for libs
  • Thanks!Questions?