In September I began work to simplify the structure of RestKit and streamline the installation. I've just pushed a new branch
Here are the details of the changes:
* Flattened RestKit into two targets. A single iOS static library and an OS X framework target. Some previously optional components
such as XML parsing and Core Data are now requirements. Lesser used components have been moved out of the main project.
* Added libxml2.dylib, Security.framework, and CoreData.framework to the requirements
* Moved SBJSON, YAJL, and Nextive parsers out of the main codebase. RestKit.a and RestKit.framework build with the JSONKit
parser and the libXML based parser. Other parsers can still be plugged in, but will be separate projects.
* Moved RestKit + Three20 to a separate project. I no longer use Three20 at all and will not be supporting the integration going forward.
* Ditched the UISpecRunner unit test harness in favor of Xcode's integrated SenTest support.
* RestKit header files all now live under RestKit/. Any "deep" imports such as RestKit/CoreData/CoreData.h are now RestKit/CoreData.h
The goal here is to trade flexibility for simplicity and reduce the carrying costs of development on the library going forward. The existing
atomic build structure has proven to be more trouble than its worth and introduces a lot of clutter.
Upgrading to the new branch:
* `cd path/to/RestKit`
* `git fetch origin`
* `git checkout 402-new-build-process`
* Edit your project settings. Remove all static library targets for RestKit. Add libRestKit.a to the linked libraries (or RestKit.framework on OS X)
* Add CoreData.framework, Security.framework and libxml2.dylib to your "Link Binary with Libraries" Build Phase
* Replace any deep imports of RestKit headers (i.e. RestKit/CoreData/CoreData.h -> RestKit/CoreData.h)
* Hit Apple+Option+Shift+K to clean the Build Folder for your project
* Build the project
There's some cleanup in progress on OS X test failures and warnings but I hope to get this merged to master shortly.
Cheers,
Blake