Xcode bugs and extreme frustration
And now, the reason it took me until ten minutes ago to release ICeCoffEE 1.4.1: Xcode. The installer building process that worked so nicely and seamlessly in Project Builder 2.x just completely failed once I upgraded to native targets. Xcode simply didn’t want to support taking an application skeleton (Unsanity Installer) and adding files to it.
If I used an application target, Xcode complained the target couldn’t depend on itself, and if I tried copying the Contents folder rather than the entire installer bundle, the Contents/MacOS folder would mysteriously disappear. If I used an aggregate target, Xcode complained the target couldn’t depend on the other products that I inserted into the target (!?); it refused to recognize any structure for the aggregate, so I had to hard-code paths all over the place, replace copy files operations with fragile shell script steps, and so forth. Finally, despite my specifying it every way from Sunday, Xcode didn’t think the aggregate target actually produced anything, so when I went to install it with xcodebuild install DSTROOT=foo the folder foo never got created and nothing was copied into it, so I had to rewrite the packaging script to manually compensate.
Mix this with other annoyances like not being able to edit a shell script build phase without getting at least one exception dialog, not being able to drag build phases between targets, the inspector’s constant selection of the “Comments” tab rather than something useful like the first tab whenever I click on anything, and the breakage, bugginess and inconsistent documentation of xcodebuild and various build settings...
and I’ve spent six hours today trying to release ICeCoffEE. Note that today is a Monday: that’s time I should have been spending on my research.
I really hope Xcode 2.0 is less buggy than 1.5. Eleven days left.
Unrelated but generally stress-inducing: My PowerBook came back today after 30 days at the Computer Loft—with a fixed display, but two screws missing from the bottom and a keyboard that doesn’t fit unless forced. What a perfect Monday.