SDK 3.2 breaks support for 2.2.1

Member
Posts: 64
Joined: 2008.10
Post: #1
I was forced to upgrade from xcode 3.2.1 to 3.2.2 and the SDK to 3.2 in order to support a iphone with OS 3.1.3 and now it works for that device, however it can no longer make device builds for my ipod touch which is on OS 2.2.1. In the build combobox it says "OS 2.2.1 missing"
Is there anyway to get it back?
Quote this message in a reply
Luminary
Posts: 5,143
Joined: 2002.04
Post: #2
older SDKs are frequently an optional install; reopen the installer for the 3.2 dev tools and make sure you've got all the SDKs you need selected (clicking "customize" if necessary).

In general you can build for older OSes by using a new SDK and setting the "deployment target" to the old OS, which may also/instead be of use to you.
Quote this message in a reply
Member
Posts: 64
Joined: 2008.10
Post: #3
OneSadCookie Wrote:older SDKs are frequently an optional install; reopen the installer for the 3.2 dev tools and make sure you've got all the SDKs you need selected (clicking "customize" if necessary).

In general you can build for older OSes by using a new SDK and setting the "deployment target" to the old OS, which may also/instead be of use to you.

There is no option for installing 2.2, only sdk 3.0 - 3.2.
But even though it hasn't 2.2 SDK, it still has the target for 2.x devices.
It's funny, because now I look at it it has all the options apart from the one I need: Device 2.2, Device 2.0, Device 2.2.1 (missing)
Quote this message in a reply
Sage
Posts: 1,482
Joined: 2002.09
Post: #4
I get the impression that Apple is not very interested in backwards compatibility. I can't even find where to get the older SDK versions anymore. I remember having issues getting the version of XCode for Snow Leopard to even compile against the older SDKs. That's one of the reasons I'm still running plain old Leopard, though it's become a pretty weak case now. Only a tiny tiny fraction of users haven't upgraded to OS 3.x yet. I highly doubt that they are going to buy anything from you if they waited 6 months to get a $5 OS upgrade.

Scott Lembcke - Howling Moon Software
Author of Chipmunk Physics - A fast and simple rigid body physics library in C.
Quote this message in a reply
Member
Posts: 64
Joined: 2008.10
Post: #5
The previous SDK 3.1 did not include 2.2 either, yet it let me build for 2.2 devices. This leads me to think, that there is just some link or something that got screwed up.

Regarding users all having 3.0, I heard some developers say that they notice an decrease in sales when they changed their app to 3.0 only. Also, I see in the Appstore most games still support 2.2.1.
Quote this message in a reply
Sage
Posts: 1,482
Joined: 2002.09
Post: #6
Well the guys that wrote SkeeBall have gotten over a million sales, and they shared their statistics at GDC. While they supported 2.x, the percentage was very small. (< 5% iirc) Building against 2.x also prevents you from using a number of APIs like the DisplayLink timer. That was a big win for us as it smoothed out our framerate and fixed the bug in the OS where it queues up the events indefinitely if you timer doesn't wait long enough.

Scott Lembcke - Howling Moon Software
Author of Chipmunk Physics - A fast and simple rigid body physics library in C.
Quote this message in a reply
Moderator
Posts: 452
Joined: 2008.04
Post: #7
I've just upgraded to the newest iPhone SDK, and I did check the installer- it drops support for 2.x.

Howling Moon Software - CrayonBall for Mac and iPhone, Contract Game Dev Work
Quote this message in a reply
Member
Posts: 64
Joined: 2008.10
Post: #8
AndyKorth Wrote:I've just upgraded to the newest iPhone SDK, and I did check the installer- it drops support for 2.x.

But that's what 3.1 did as well, yet it still allowed me to build for a 2.2.1 device.

Maybe I could downgrade my iPhone from 3.1.3 and downgrade xcode
Quote this message in a reply
Moderator
Posts: 3,571
Joined: 2003.06
Post: #9
Skorche Wrote:Well the guys that wrote SkeeBall have gotten over a million sales, and they shared their statistics at GDC. While they supported 2.x, the percentage was very small. (< 5% iirc) Building against 2.x also prevents you from using a number of APIs like the DisplayLink timer.

Also, I think you have to do 3.1.2 if you want In-App Purchase. You can still target lower than that, but not support IAP if you want, but that would most likely defeat the purpose of using IAP if you ask me.

Personally, I dropped 2.x late last year.
Quote this message in a reply
Member
Posts: 446
Joined: 2002.09
Post: #10
I'll be dropping 2.x in my next round of updates as well. It's not worth the pain...

Using a 2.x deployment target means you'll most likely be stuck using GCC 4.0 (or suffer crashes in the bowels of the standard libraries) and you can't build universal arm6/7 binaries - well, they build, they install, but Apple won't accept them in my experience. 2.2.1 is also a pretty buggy "final" release. I had some ugly audio session and view controller orientation workarounds in place just for that system. Good riddance!
Quote this message in a reply
Moderator
Posts: 3,571
Joined: 2003.06
Post: #11
Frank C. Wrote:I had some ugly audio session and view controller orientation workarounds in place just for that system.

Heh, yeah, I had the audio stuff all fixed and figured out and it worked really really well under all conditions I could throw at it. Then Apple went and changed it again for 3.x and made it so I had to try to work around a new set of bugs. Now my audio works fine except for a few special cases with the iPod app. I gave up. Cry

I also had problems with orientation issues with the view controllers in like 2.1, and I had those worked around as well, and then Apple changed that in 2.2 and broke it again but in a different way. I gave up on that one too. Cry

The lesson I learned: Don't work too hard to work around broken APIs. Just live with it and let the vendor either fix it or break it more.
Quote this message in a reply
Member
Posts: 64
Joined: 2008.10
Post: #12
Finally found some information: https://devforums.apple.com/thread/37798?tstart=45

According to that thread I have to install the old xcode with SDK 3.1 in a seperate directory.
Quote this message in a reply
Member
Posts: 81
Joined: 2007.07
Post: #13
Skorche Wrote:Well the guys that wrote SkeeBall have gotten over a million sales, and they shared their statistics at GDC. While they supported 2.x, the percentage was very small. (< 5% iirc) Building against 2.x also prevents you from using a number of APIs like the DisplayLink timer. That was a big win for us as it smoothed out our framerate and fixed the bug in the OS where it queues up the events indefinitely if you timer doesn't wait long enough.

If you use the Apple example code, DisplayLink is used when compiling for 2.x if your device is 3.1 or later, it simply checks at runtime if its supported.
Quote this message in a reply
Member
Posts: 446
Joined: 2002.09
Post: #14
captainfreedom Wrote:According to that thread I have to install the old xcode with SDK 3.1 in a seperate directory.
You can only use one of those Xcodes for the distribution build though, so don't go using one Xcode to test on 2.x and another for 3.x, then expect a distribution target built with either Xcode to run on the other OS (hope that makes sense). It's safer to build with the latest SDK and test on 2.x devices using ad hoc builds. It'll be more difficult to debug but most of the kinks can be worked out on a 3.x device beforehand.

But like many of us said - OS 2 just ain't worth the trouble anymore. You're making it hard on yourself for no good reason.
Quote this message in a reply
Member
Posts: 64
Joined: 2008.10
Post: #15
Frank C. Wrote:You can only use one of those Xcodes for the distribution build though, so don't go using one Xcode to test on 2.x and another for 3.x, then expect a distribution target built with either Xcode to run on the other OS (hope that makes sense). It's safer to build with the latest SDK and test on 2.x devices using ad hoc builds. It'll be more difficult to debug but most of the kinks can be worked out on a 3.x device beforehand.

But like many of us said - OS 2 just ain't worth the trouble anymore. You're making it hard on yourself for no good reason.

That doesn't make sense. SDK 3.2 doesn't build for OS 2.2.1 -> therefore I can only make the distribution build with SDK 3.1 .

Regarding your other point, you guys have made it clear that you don't think anyone uses 2.2.1- and indeed you could be right. However I heard from other sources differently, so I'm just going to play it safe.
Quote this message in a reply
Post Reply