Today I upgraded from Xcode 2.0 to 2.4. It was not a trouble-free upgrade, I'm sorry to say.
My application is a 'terminal' app - it makes no use of any OS resources other than memory allocation. This is so I can easily transport the code between MacOS, Windoze, and Linux. Thus, I expected no problem when moving this relatively undemanding app to 2.4.
After doing the installation and booting Xcode 2.4, I started getting random "Internal Error" messages indicating that some object was expecting a nonzero field, but was finding a zero field.
It would be more helpful if you provided a) the version of Mac OS you're using and b) the exact Internal Error message. And it would be good to know whether you did the recommended uninstall of the 2.0 tools prior to installing Xcode 2.4. It would also help to know whether you started with a Clean, or had a build folder built with 2.0, then upgraded to 2.4 and rebuilt without cleaning. Enough has changed When I tried to build and run my app (ignoring the periodic non-fatal Xcode 2.4 internal error messages for the moment), the build completed successfully but it didn't boot into a "pseudo-terminal". Instead, I got the familiar "Internal Error" message.
The Internal Error messages are exceptions. As a programmer you may be familiar with them. They generally mean that there is something somewhat seriously wrong with the program. Xcode allows you to continue through exceptions for the purpose of saving your work and quitting cleanly; you should have no expectation that a task that's throwing a lot of exceptions should be able to somehow muddle through them and eventually produce correct results.
After poking around and figuring out a tiny part of what Apple has actually done in moving from 2.0 to 2.4 (thanks for the poor-quality release notes!),
You may also want to consult the release notes for Xcode 2.1, 2.1.1, 2.2, and 2.3 as well. They're in the "Show Older Release Notes" item in Xcode's Help menu. These releases include over a thousand bug fixes and enhancements reported or requested by developers; complete release notes for everything we've shipped since June 2005 would run to several hundred pages. Most of that content has been folded into updated versions of the Xcode User Guide for easier access.
I found that build products for the development phase now go in their own subfolder called 'Development'. However, in the initial Xcode 2.4 project (built by Xcode from the 2.0 project), there was a folder WITH NO NAME that corresponded to the new /build/Development subfolder that was automatically created by Xcode 2.4.
This looks like a bug in upgrading from Build Styles (used by Xcode 2.0) to Build Configurations (used by Xcode 2.2 and later). If you could write a bug report and submit the original Xcode 2.0 ".xcode" project file that would help us track this down. Or perhaps it's just a byproduct of trying to build the same project with substantially different developer tools without cleaning out the previous build folder first.
So, I renamed the unnamed folder to Development, and was able to build and run within a pseudo-terminal successfully. I also don't get any more "Internal Error" messages. I suspect that the initially unnamed 'Development' folder was causing the Xcode 2.4 internal errors.
I'm surprised that such a simple problem could have escaped Apple's regression testing (assuming that they did any :-) Thank goodness that everything else seems to be working normally now (my app's own regression tests all passed successfully, and I've done one new build cycle without any anomalies).
Well, as I mentioned above, we've done four releases since Xcode 2.0, and the test matrix for upgrading scenarios grows as a power function of the number of versions. We generally concentrate on testing two versions back for compatibility, because the more regression coverage we do for the relatively few people leaping from 2.0 to 2.4, the less testing we get to do on the new release itself, and our experience shows that more users benefit from focus on the current release than on regression testing back four versions.
Please do file Radar requests with detailed information, steps to reproduce, the exact phrasing of errors you get (copied and pasted from the windows, or with screen shots), and sample projects if applicable. Those really help us isolate cases like this.
Regards, Chris Espinosa Apple
|