I am working on a project using GNUStep that I'd eventually like to make fully cross-compatible between Linux and OS X. I am developing it under Debian squeeze amd64 (as well as x86-32) and occasionally testing it on a G5 Mac running OS X 10.4.11.
The code itself compiles fine on both machines, but I'm having problems transferring the interface files between them. So far I have been dealing with this by keeping two copies of the interface; one that I use with Gorm in Linux (a .gorm file), the other that I use with Interface Builder in OS X (a .nib file). However, maintaining and updating two separate interface files is a lot of work, so I've been looking into how well Gorm can deal with nib files.
Gorm seems to be able to load the nib file created by Interface Builder without problem. When I then resave that nib file - without modification - to another nib file using Gorm, and then send that to my OS X tester machine, Interface Builder is unable to load that Gorm-created nib file (even though Gorm is able to read that file just fine). Specifically, the error that Interface Builder reports is
"-[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (GSMenuSeparator)"
I am using GNUStep make 2.6.2, base 1.24.0, gui 0.22.0, back 0.22.0, and gorm 1.2.16, all obtained from ftp.gnustep.org/pub/gnustep and compiled from source.
I did not report this as a bug because I figured that this is a known issue. However, looking through the mailing list archives, I was unable to get a clear sense of exactly what the current state of Gorm/Interface Builder compatibility actually is. Can Gorm be expected to save nib files that are readable by Interface Builder? If so, am I missing something here? If not, is this an issue that is actively being worked on, that one could expect a fix for at some point in the future? I'm OK dealing with two interface files for now, but right now I'm wondering if there's anything I can do to improve compatibility, or if I can hope for a fix in the somewhat near (or somewhat distant) future, or if I should just accept that I cannot expect Gorm and Interface Builder to be able to talk to each other at all.
Any help and/or input in regards to this problem is really appreciated, thank you!