I searched for days, nothing found, no answer on apple dev forums, I want to be able to test my apps on older versions - on iOS Simulator!
I know - this is not the proper way of testing and not 100% reliable. But I can't afford getting another test-device with older iOS, aaand downgrading my existing devices seems to be a very tough task too - damn sure too tough for me...
Testing on iOS Simulator for 3.x versions will do enough good for those who didn't upgrade to 4.x yet and download my apps.
So please - anyone who was able to reactivate the older iOS Simulator SDKs on Lion / Xcode 4.1? - Don't tell me to set deployment target please :-)
THANKS!
Actually you can install xcode 3.2.x in Lion, and it's will automatic installed in "developer-old" floder. Your xcode 4.1 is still available.
I also want to reactivate the older iOS Simulator SDKs on Lion / Xcode 4.1. ;)
NotMyName posted blow in devforums.apple.com
By reverting back to OS X 10.6.8, and Xcode 4.02, apparently. :-(
Although it is worth noting that the Apple employees posting here have repeated a few times that this is an intended change, and one might guess that either the various simulator versions weren't particularly accurate on their API levels, or that it was just too much work to maintain. I seem to remember there being some bugs in the block implementations at the various levels, for starters.
There's also the often reported mantra, "The simulator is NOT an accurate way of testing your app's behavior."
You can't reactivate the iOS 3.x Simulator, you will need to install an older version of Xcode (one with the iOS 3.x SDK) along side Xcode 4.x (with the iOS 4.x SDK).
Related
iOS project. Base SDK 4.2, deployment target 3.0. A customer is complaining about an issue on iOS 3.1 (he has an old device).
I tried installing Xcode 3.2.3 - the oldest there is for download. It does not offer iOS 3.1 as a test target. Does anyone know how can I enable older versions of iOS on the simulator?
The box also has Xcode 4 (in a different folder). Could it be the case that they're sharing the iOS simulator, and the backwards-incompatible one from Xcode 4 is getting in the way?
There is no substitute for testing on a real device.
I've had a problem with my iPod touch (3rd gen, ios 5.0) crashing in one app. Every day. The dev won't buy, beg, borrow or steal a real iPod touch to test it on so he can fix it. As a user this is extremely frustrating.
EDIT:
The final versions of Xcode with the iPhone SDK, as it was called then, are not available from Apple's download page, but the direct links still work.
The direct links can be found at:
http://chris-fletcher.com/2010/08/28/howto-install-iphone-sdk-2-0-3-1-for-xcode-3-2/
If you use the latest Xcode, you can install device debugging support via the Downloads->Components section, a la: http://cl.ly/3U1V1G3W2p2E1G29342e
http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-iphone-sdk.html
Some of the links are dead though. Apple is removing those old files little by little. Get them while supplies last.
May be this will be silliest question but users are facing such problems.
Sorry for same.
I have made build on xcode 3.2 which has maximum IOS 4.3 and uploaded on itunes.
Now users which are downloading application having IOS 5.0 says that application is getting crashed or vanished.
So, just want to ask that build made on xcode 3.2 runs on IOS 5.0
Please help.....
Thanks a lot....
The short answer is that you have a bug in your app.
An app compiled for iOS 4.3 should work just fine. However, as with any update to the operating system, ambiguities in API calls are tightened, undocumented behaviours vanish and some APIs become deprecated. Deprecations won't cause problems (yet), though both of the others might.
For this reason you should be testing with new versions as they become available.
i downloaded xCode 4.0.2 (Build 4A2002a) on my mac, and i want to test my program on old iOS (like 3.1.3)
I try many options in sdk menu, but nothing work.
Is there any way to run old iphone simulator on new sdk
No. I think Apple want to encourage developers to adopt new versions of iOS as quickly as possible, so they only go back as far as they think they need to. That seems to be 4.0 in the current downloads (as of June 2011).
To be fair, though, there is no substitute for testing on real hardware. Remember it's a simulator not an emulator. There are differences that you're not going to spot if you rely too heavily on the Simulator.
Officially Apple let developers deploy apps that's compatible with iOS 3.0 to iOS 4.2. However there are some APIs and some hardware features that's not present in some devices or in some iOS versions.
However if you only have one testing device, and you want to try to install a clean iOS 3.0 to that, for testing purposes, what is the official way to do it? I tried looking all over Apple developer website and it does not give me anything.
I asked a similar question before: A TimeMachine taking my iDevice back to 3.1.2?
After that I did a thorough research on this topic. It finally turned out, that actually there is no official way for a developer to downgrade her or his own device back to an earlier iOS. Apple just doesn't allow that to happen.
However, in your code, there are many things you can do to make sure your app is supported in an old version iOS. Check this great post: http://cocoawithlove.com/2010/07/tips-tricks-for-conditional-ios3-ios32.html
If testing on the iOS Simulator is enough, you can achieve that by installing previous versions of the SDK which contains the older versions of iOS.
As for device, there is no quick way to switch between iOS versions on a single device.
I struggled with this for a while, and eventually gave up on downgrading and bought a used 1st gen iPod Touch, which can't be upgraded to 4.x so it's guaranteed to be 2.x or 3.x (2.x is easily upgraded to 3.x).
Now I test on that. Added benefit is that when testing on it you're at the same time checking the performance on a slower (slowest?) iOS device too.
I’ve installed Snow Leopard, have Xcode 3.2 and 3.0 iPhone SDK. I want my applications to run on 2.2.1, but the SDK is nowhere to be found in Xcode. I’ve set the deploy target to 2.2.1, but still I cannot be sure I am not using any 3.0-isms. (I’ve sent a sample application to my friend who still has 2.2.1 and it does not run, so it looks I really do use some 3.0 specific API.) How can make sure that my applications will run on 2.2.1? (Simulator also lists only 3.0 as version option.) I’d hate to check my sources manually for every call that might not have existed in 2.2.1.
See my question.
However, I think this is a bad situation that Apple has created for us. There really is no way to test against 2.x.x, if you, like me, have no iPhone 2.2s to test against. I actually bought a new 3Gs just so I could use the old 3G for testing. Stupidly though, when iTunes came up one day and asked if I wanted my phone updated to 3.0.1, I said yes, without realizing which phone I was updating.
I have tried, to no avail, to downgrade to 2.2.1, doing all the things like holding the home button and power for 10 seconds, etc., but I keep getting a baseband loading error.
I know Apple is trying hard to push everyone to 3.0, but not having the stats on how many users are still on the older OS, it seems prudent to keep supporting that OS. They should at least have kept 2.2.x support for the Simulator. I hate to release a 2.2.1 app based on whether I think I am using 3.0 calls or not, without actually testing it on 2.2.1.
OK, SDK 3.1 was released yesterday (September 9) and also contains SDK 2.2.1. You cannot build for the Simulator, only for the device, but most of the glaring 3.0-isms will appear as compile errors, which makes testing much easier.
Uninstall the SDK or Developer folder completley.
using Terminal execute: /Library/uninstall-devtools --mode=all, then restart, re-install new SDK.