2

Information on the subject of iOS 4.3 device support is pretty thin on the ground at the moment. However, the lack of a 4.3 beta for iPhone 3G devices (and older iPod touch devices) leads many to believe this could be the end of OS upgrades for older devices.

Even if this assumption is incorrect right now, one day it won't be. There are hardware limits that will eventually stop Apple from supporting the oldest of devices with new iOS updates.

Given that iPhone application development debugging has the requirement of both iOS SDK and iOS version being the same, how would one continue development using iOS 4.3.x SDK releases while doing device performance testing on an iPhone 3G (or older device)? Are there ways of debugging over different iOS/SDK versions? Or do we have to simply drop development support for the older devices and tell those customers who don't upgrade their hardware: "tough"?

badgerr
  • 7,802
  • 2
  • 28
  • 43

3 Answers3

3

You should have no problem running code written using the 4.3 SDK on an older phone. I'm currently doing testing using the latest beta SDK, but running the code on a iPhone 3G running 3.1.3. As long as you are careful to check for the existence of newer methods/classes, your app will continue to run on old OSs. I'm not sure where you heard that OS and SDK versions need to match to debug; that is not true.

If you're willing to forgo the latest features, you should be able to support the original iPhone as long as you like.

kubi
  • 48,104
  • 19
  • 94
  • 118
  • I've never been able to use the latest SDK on any device that was not running the latest OS. There is a list of supported OS's in the XCode organizer, and it never includes all versions. Maybe I'm doing something wrong? Case in point: My friends iPod Touch running 3.1.3 refuses to let me debug on it through XCode running the latest SDK (not beta). – badgerr Feb 07 '11 at 16:08
  • 1
    Change your deployment target to an older OS. http://stackoverflow.com/questions/1109609/xcode-iphone-base-sdk-active-sdk-difference – kubi Feb 07 '11 at 16:27
  • Deployment target has always been set at 3.0. I'll have access to the device tomorrow so I'll be able to be a bit more specific with the issue – badgerr Feb 07 '11 at 18:49
  • @badgerr - I've never had problems building and testing on devices with older OS versions than the currently installed SDK. Newer OS versions won't work, but older ones should behave just fine. I, too, have an iPhone 3G still running 3.1 that I use for backwards compatibility testing. – Brad Larson Feb 08 '11 at 18:53
  • I've just tried it with the offending device. It suddenly works again with no compiler settings changed. The last few SDK versions have definitely given me some trouble, but it works since I updated the SDK, and I guess that's all that matters. – badgerr Feb 08 '11 at 20:15
2

You have to set a deployment target with an earlier build number - you can still target 3.0. You just have to be careful about what frameworks and calls you use and check for compatibility.

Since the newer SDK's do not have simulators that support earlier IOS versions, it's important to keep around devices with older builds.

Kendall Helmstetter Gelner
  • 74,769
  • 26
  • 128
  • 150
0

For using iPhone 3G as debugging device in Xcode 4.3 just go to Build Setting and edit the Architectures to armv6 and armv7 both. armv6 architecture is used for older devices. Select the Deployment target 3.0. This will work.

abhishek kumar
  • 95
  • 2
  • 11