One of the fun things about the Mac going all the way back to the original was the way it stored user interface data for applications inside a separate stream called the "resource fork", in a format readable by a tool named ResEdit. This allowed users to poke around inside applications and learn how their UIs ticked, and it was also helpful to developers, who could look at Apple's interfaces for examples when trying to figure out how to do something UI-related. In Mac OS X, this tradition continued, with ResEdit replaced by a tool named Interface Builder, and the resource fork replaced by a file called the "nib file" (with NIB standing for NeXTSTeP Interface Builder). Nib files contained even more information than the classic resource forks, and were of great interest to tinkerers and developers.
Until now, that is. In the last few years, Apple has been moving away from using nib files directly in projects. Instead, they have been encouraging the use of flat XML-based "xib" files which are converted to nib files on compiling the application. Since xib files are essentially flat, UTF-8 encoded text files, as opposed to nibs, which were bundled folders, xib files are much more SCM-friendly than nib files were. Unfortunately, however, the nib files to which they compile are not editable by Interface Builder, since they lack the class information that IB needs, and only include the raw data necessary for the application to reconstitute the objects. What's more, in Xcode 4, it is no longer possible to create nib files containing the tiny "classes.nib" and "info.nib" files that could make the file editable while consuming a negligable amount of space. Instead, the only way to make an editable nib is to make a copy of the entire xib file, and name it "designable.nib". Since a xib is essentially a less-compact representation of a nib file, this more than doubles the size of the nib, and is far less efficient than the old system was. Consequently, editable nibs are becoming rarer and rarer in the wild.
Enter NibUnlocker. NibUnlocker is an application that attempts to parse a non-editable nib file and output a xib file that Interface Builder or Xcode can edit. The resulting xib files do not contain all the information that was in the original xib file used to create the nib, however, so the xib file created by NibUnlocker will not be a complete replacement for the original. Although they should not be used in a project to compile a new nib file, as doing so may have unpredictable results, xib files made by NibUnlocker can be very useful for examining a nib file and seeing how it is constructed.
Subscribe for our newsletter with best Mac offers from MacUpdate.