Using Local Libraries with CocoaPods
30 November 2012

Using Local Libraries with CocoaPods

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'

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: do |s| = '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

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.

Heads up! This article may make reference to the Gaslight team—that's still us! We go by Launch Scout now, this article was just written before we re-introduced ourselves. Find out more here.

Related Posts

Want to learn more about the work we do?

Explore our work

Ready to start your software journey with us?

Contact Us