Is anyone doing iPhone SDK 2.x.x dev on Snow Leopard? - iphone

There seems not to be an SDK 2.x.x for Snow Leopard. Or am I mistaken?
BTW, I'm loving the built-in Clang!! Kudos to the Xcode team!

From Apple:
Set your Base SDK to iPhone 3.0 Device.
Set your iPhone Deployment Target to 2.2.1.
Use AvailibilityMacros when you call iPhone 3.0 APIs.
There isn't an iPhone Simulator for 2.x in Snow Leopard. Set your Active SDK to iPhone 3.0 Simulator to test in the simulator; set it to 3.0 Device and set your Active Executable to 2.2.1 to test the app on a 2.2.1 device.

You can write applications targeting iPhone OS 2.x for Snow Leopard. Just make sure you are not using any iPhone OS 3.0 specific API:s.
You can also write applications that target both 2.x and uses 3.0 features if available. Two things to keep in mind if you do:
Link any iPhone OS 3.0 frameworks weakly.
Be sure to check the [UIDevice currentDevice].systemVersion before calling something 3.0-ish.
Could be a third bullet; Ask yourself if user who did not even care to upgrade to iPhone OS 3.0, is likely to care for installing apps?

I asked about this at WWDC and was told that the 2.2 SDK doesn't work with XCode 3.2. I tried just copying it over, and it didn't work. That said, I'm not sure how many iPhone customers are still running 2.2...

This is a big problem because we can't test apps for OS 2.x without a device that have OS 2.x!
http://www.fdambrosio.net/archives/1395

There's a problem with supporting iPhone OS 2.x and iPhone OS 3.x related to device or interface rotation animation:
Read my blog post here:
http://blog.jessearmand.com/post/358250047/regarding-iphone-os-compatibility-and-support-of-older

Related

iOS 3.0+ compatibility for iPhone app

I've released an app but forgot to set the compatibility to iOS 3.0+, can I make an update to support 3.0+ and how?
Should I just change the deployment target to 3.0 and is there a way to test it in simulator for 3.0?
I only have 4.2 and 4.3 for debug...
Change your deployment target to iPhone OS 3.0 and test on device with iPhone OS 3.0.
Not only is it bad practice to even consider deploying to App Store before testing on device. If version compatibility is your concern it is doubly so, since the Simulator is far from perfect when in comes to testing all version incompatibilities.
Also ask yourself if you really need to support iPhone OS 3.0 users? All studies made tells us that around 95% of all users are running on iOS 4.0 and later.
A user who can not be bothered to update to the latest OS version for free, is not likely to pay for your app.
change your deployment target to 3.0 and test it in the simulator. If all goes well, submit it as an update - exactly as you described.
When you change deployment targets to 3.0, you should be able to select the 3.0 simulator in the schemes.

iPhone 3.2 simulator

I'm working with a legacy app with a deployment target of 3.0. I have a crash being reported on iOS 3.1.3 for iPhone. In xcode 4 the only 3.x simulator I see listed is iPad 3.2
How do I test iOS 3.1.3 for iPhone?
See Install xCode 3.2.3 w/ iPhone SDK 4, get "Base SDK missing", can't see other SDKs for an extended discussion of this topic. Also, links to older Xcode and iOS SDK versions can be found at http://chris-fletcher.com/2010/08/28/howto-install-iphone-sdk-2-0-3-1-for-xcode-3-2/.
Buy a used iPhone or iPod Touch that has 3.1.3 installed and don't update the iOS on it. I have a 3G with 313, no cell service and just use it for testing on wifi. This is also useful to see check what the performance is like on a slower phone.
However, many 3.1.3 crashes are caused by using a 4.0 API call or object that is only in 4.0. You can find those problems on the 3.2 simulator.
It's not possible actually with Xcode4. If you can get old version of Xcode3.1 with iOS SDK 3.1 and install it side by side with Xcode4 then it may be possible.

Can't debug on Simulator 3.2 anymore

I have recently updated XCode (3.2.4) and the SDK (4.1).
When debugging I can only debug using:
iPad Simulator 3.2
iPhone Simulator 4.0
iPhone Simulator 4.0
How do I use the iPhone Simulator for 3.2? Is it available?
iOS 3.2 never ran on the iPhone. It was iPad-only. And Apple considers iOS 3.1 too old to maintain support for.
There is no iOS 3.2 for iPhones. Only iPhone OS 3.1.x and lower, and iOS 4.0 an up.
To test on iPhone OS 3.1.3 (or earlier), you will need an actual device running that OS version. Many developers buy a used older model iPod Touch for just this purpose.
Apple is no longer accepting apps that run on iPhone OS versions prior to 3.0.

iPhone Simulator 3.0

Is it possible to test my app in the iPhone Simulator w/ the 3.0 SDK. The only options that I currently have available are 3.2 (iPad) & 4.0 (iphone). I know I could buy a iPod Touch w/ 3.0 off eBay or something but I'd really like to avoid spending money if it's possible to get this working in the simulator.
http://developer.apple.com/iphone/library/documentation/xcode/conceptual/iphone_development/125-Using_iPhone_Simulator/iphone_simulator_application.html
Important: iOS 4.0 uses the same Objective-C runtime as Mac OS X v10.6. iOS 3.2 and earlier use the Mac OS X v10.5 Objective-C runtime. Because of this change, binaries generated with an iPhone SDK distribution earlier than 4.0 do not run in the simulator that’s part of the iPhone SDK 4.0 and later distributions. After moving from iPhone SDK 3.2 and earlier distributions to a 4.0 or later distribution, you must rebuild your iPhone Simulator binaries to run them in the simulator. If you use licensed static libraries in your application, you must obtain versions of them generated with an iPhone SDK 4.0 or later distribution. For more information about the Objective-C runtime, see Objective-C Runtime Reference.
One other option is to maintain an older copy of the SDK/Xcode on another Mac, and run the old SDK and Simulator there for regression testing. But testing on a older device is the only way to test that an app can actually perform reasonably on such older devices. Neither a new device nor the Simulator can do that.

will a iphone 3.1 build work on 3.2, 3gs and 4.0.1

I am planning to do a app which works on 3.1 and launches on 3gs as well. Please let me know how will it be displayed when launched at iTunes connect ? will it be like works on 3.1 and above and will get installed on iphone 3.1, 3.1.2, 3gs and 4.0.1 or just works on 3.1 alone. Please enlighten me what has to be done for working on all the 4 version devices.
It seems you need to read a bit about the Base SDK and Target SDK. It can be a bit confusion, your right. There is a very nice article at: Developing iPhone Apps with iOS4 SDK, Deploying to 3.x Devices
You should have no problem in making an app that runs on all the devices you want. I hope it helps.
As long as nothing has been deprecated, it should be forward compatible.
I normally set my base SDK to 4.0 and build against 3.0 so it will work on anything 3.0 and above.