开发者

Is it still possible to develop for older iOS devices?

A few months ago I got an shocking email from Apple, telling that they will reject every app that is not built against iOS 4.x SDK. Now I wonder if:

1) is this a bad joke?

2) if not: does that mean that my app will only run on the very lates devices like iPhone4, iPod touch 4, or any device that has iOS 4.x installed?

I downloaded the latest iOS SDK and I can only build against 3.开发者_Python百科2 or 4.1, where I believe 3.2 is only for iPad. Now I can either throw away my 6 iPod touches with older OS installed or I'm lucky and there's still a way to code for them without upgrading them all to 4.1.

What do you think? What's the truth?


A few months ago I got an shocking email from Apple, telling that they will reject every app that is not built against iOS 4.x SDK. Now I wonder if:

1) is this a bad joke?

No, but it's a good thing.

First, it encourages developers to keep using the most up-to-date SDK.

Second, it encourages users to update to the latest firmware. (Fewer bugs, more stability, less security holes).

Third, it presents you a fixed target you have to worry about when it comes to submitting your app. If Apple tested against every version of iOS, it would take forever for apps to be approved, and you'd end up getting all sorts of little bugs on specific versions of firmware on specific devices. It would be madness.

2) if not: does that mean that my app will only run on the very lates devices like iPhone4, iPod touch 4, or any device that has iOS 4.x installed?

You can set the Deployment Target in the build settings for whatever you want, but I'd recommend no lower than 3.1.x for any app. Because of (1), most users are using 4.x, with a small percentage using 3.x, and virtually no one running 2.x or 1.x.

I downloaded the latest iOS SDK and I can only build against 3.2 or 4.1, where I believe 3.2 is only for iPad. Now I can either throw away my 6 iPod touches with older OS installed or I'm lucky and there's still a way to code for them without upgrading them all to 4.1.

If you have an older iPod Touch (as I do -- 1st gen) keep it around (with 3.1.3) for testing your apps. Don't throw it out.


  1. No it's not, it's "the law according to Apple".
  2. No it does not. There's a setting called "deployment target" which you can set iOS 3.0 or later versions. Use it. But you must build against the iOS 4 SDK.

The truth is what Apple says, and what I've just clarified above. :)


You can still develop for older devices. You just need to set the deployment target to the older iOS version you support. You have to build agains the most recent SDK however.

You can find more information on the official documentation.


As of version 4.5 of Xcode, development for Arm v6 is no longer supported. That means that you can't build an app that will run on an original iPhone, iPhone 3G or 1st/2nd generation iPod Touch. If you try to build using a 3G, it will give you a warning saying that it's not a supported device.

If you need to support those older devices, you'll have to use Xcode 4.4.1. If you use that version, you can still support back to iPhone OS 3 by setting the deployment target. You can download older Xcode versions from Apple.

The reality is that very few people are on iPhone OS 3 any more and unless you have a very good reason, you should just bump up to iOS 4. Check the stats to see if it's really worth your while.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜