Since the release of the first beta of the 3.0 SDK I’ve been checking if apps built for 2.x can run on it. Clearly this is something which Apple really should do, but a hint in the latest (beta4) release notes says this:
FIXED: Previously, the compiler incorrectly allowed synthesis of ivars belonging to a superclass. This caused crashes or other undefined behavior when the size of the superclass changed (such as running an application compiled against an older OS on iPhone OS 3.0.) The fixed compiler now generates an error when it encounters this condition. If you have shipped an application to customers, Apple recommends compiling against the 3.0 SDK and updating your existing application if the problem exists.
Now, does that mean that you’re going to have to release an update for apps which exhibit this problem for people on 3.0 to be able to use the app? Surely that cuts out people who upgrade, and if you update your app then it cuts out people who don’t upgrade? Lose-lose situation?