I want to ask about your practices to keep your third-party libraries up-to-date easily.
In my iPhone project, I use quite a lot third-party libs (like TouchXML, JSON, RegexKit, YAJL, MGTwitterEngine...). Most of them is stored in GitHub and their version, especially MGTwitterEngine, change quite rapidly (because of adding new feature, fixing bug, changing in Server(like Twitter) response format...).
Sometimes, I forget to update (also don't want to change the stable version) then my project get bugs because of out-of-date libraries.
When I got a bug because the old libraries. I often go to Github, download the new version, then need to change a lot of code. Because downloading new version means I do a fast-forward from a very old version to the latest version. I think It will less painful if I update the library more frequently.
What is your approach for this task?
It is now 2012, and since this question was asked two projects have emerged which aim to make it much easier to manage project dependencies in iOS code: CocoaPods and VendorKit. Both are inspired by the Ruby dependency manager Bundler. CocoaPods is probably the most mature and active project, but both are gaining traction.
Git submodules help a lot in organizing your project and dependencies, but it can still be a hassle to get the search paths and linker flags right, not to mention figuring out what's wrong if the dependencies break. It's also hard to deal with the situation where A and B both depend on C, where A is your own project and B and C are dependencies. So my advice, at this point in time, would be to use one of these projects and support them by writing specs for various libraries.
There is also the lesser-known Kit, implemented in Haskell. Worth checking out.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With