Gaslight

cdmwebs

We’re big fans of CocoaPods here at Gaslight. We like having dependencies managed for us, source fetched and compiler and linker flags set automatically.

We’ve been using a proprietary library called SensibleTableView for building out TableViews quickly in our project. Since it’s proprietary, we can’t just give Cocoapods a podspec and fetch it automatically, but I didn’t want our project cluttered with dependencies. So, here’s how we made it work.

Enter Local Podspecs

CocoaPods allows the use of local podspecs. That means you can use a local path to a directory on your computer and write a Podspec in that directory and use CocoaPods just like you’d expect. Here’s what our Podfile looks like:

platform :ios, '5.1'
inhibit_all_warnings!

pod 'SensibleTableView', :local => "vendor/frameworks/STV 3.1.3 Pro/Source Code/SensibleTableView/"
pod 'STV+CoreData', :local => "vendor/frameworks/STV 3.1.3 Pro/Source Code/STV+CoreData/"

Of note, inhibit_all_warnings! is a pretty handy little setting to hide all the noise in libraries you’re using from CocoaPods. It’s nice to remove a bit of noise you don’t need to focus on at the moment.

Here’s the Podspec for SensibleTableView:

Pod::Spec.new do |s|
  s.name = 'SensibleTableView'
  s.version = '3.1.3'
  s.platform = :ios
  s.ios.deployment_target = '5.0'
  s.prefix_header_file = 'SensibleTableView/SensibleTableView-Prefix.pch'
  s.source_files = 'SensibleTableView/STV-Core/*.{h,m}'
  s.requires_arc = true
end

It’s path is vendor/frameworks/STV 3.1.3 Pro/Source Code/SensibleTableView/SensibleTableView.podspec, if you’re wondering.

That’s it. Cocoapods is great and you should be using it, too.

Blog comments powered by Disqus
Copyright © 2009-2012 Gaslight Software, LLC