WWDC 2005: Xcode 2.1

I installed Xcode 2.1 and played around with it briefly. In addition to universal binary support, there are a few other changes. I'm not sure exactly what's still secret, so I'm going to be conservative for now, and I'll come back and say more later. I think most of the surface-level stuff is safe because 2.1 is available for download for all ADC members.

Build Configurations

Build configurations take some of the best ideas of build styles, but rearrange them into something that's much easier to use.

One of the most frustrating aspects of Xcode's build process was the fact that it wasn't always clear whether the target or the build style was in charge of a particular build setting. In addition, switching build styles overwrote the previous product and you had to start from scratch.

In Xcode 2.1, each build configuration builds into a separate location. Each setting in a build configuration is set in exactly one place, and the settings can be stored in a plaintext config file. The config file can be checked in, shared, etc. It's a really simple system that just works. No more strikethroughs!

New Project Format

Xcode 2.1 also introduces the new .xcodeproj format. This enables build configurations, but also makes the project files themselves much easier to read. Unlike .xcode files, they can be reasonably diffed and merged.

Unit Testing

Another interesting addition is built-in unit testing. This is big news and should really improve the quality and ship time for a number of developers. The test results show up right in the build window. The idea here is to employ the "test-first" philsophy used for agile development, including the creation of Tiger itself.

Improved Debugging

Substantial work has been done in the area of debugging. Breakpoints can now be conditional, or can activate actions like shell scripts, applescripts, logging events, etc. This is nice as you're no longer sprinking tons of NSLogs all over the place. We also have watchpoints on variables now.

Breakpoint visualizations are really slick. This is hard to explain abstractly -- you really need to see it. Essentially you can see the flow of activity in an application via Xcode's visual modeling tools.


Tools and development license for WebObjects is now bundled with Xcode, which is an interesting event. We'll have to see what it means. Also, WebObjects now uses Xcode's built-in modeling tools.

More details when/where possible.
Design Element
WWDC 2005: Xcode 2.1
Posted Jun 6, 2005 — 3 comments below


Alberto Careccia — Jun 07, 05 205

In the purpouse of seeing actual intel assembly code generated, i've tried to compile an Universal Binary but with no fortune.

I can't link the main object with i386 libs..
../libmx.dylib does not contain an architecture that matches the specified -arch flag: i386 (file ignored)

Dale — Jun 07, 05 207

Scott, Xcode 2.1's publicly available so any extra info from you would be great. I'd also be interested in hearning what WebObject tools/license is included in 2.1 and how that might affect uptake of WO. For example, Macromedia bundle a free Coldfusion development server sans tools. Will Xcode 2.1 bundle a WO server environment for developers with Xcode 2.1 being the tools. If so, this might encourage more developers to use it and push it out to businesses.

Steve — Jun 07, 05 208

Alberto, make sure your SDKROOT settings is /Developer/SDKs/MacOSX10.4u.sdk. I had the same error you did until I changed that setting too.


Comments Temporarily Disabled

I had to temporarily disable comments due to spam. I'll re-enable them soon.

Copyright © Scott Stevenson 2004-2015