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.

Related Posts

Want to learn about the types of products we build?

Check out our projects

Like what you're seeing? Let's keep in touch.

Subscribe to Our Newsletter