comparison between iphone OS 3.0 and 3.1.3? - iphone

i want to know in Detail comparison between iPhone OS 3.0 and 3.1.3 and also want to to about all newly added features in OS 4.0 so please give a link or some source which gives the comparison and Newly added features in details with Description.

Just read the version history on wikipedia.

iPhone OS 4.0 is still under NDA. I can't provide you with the details of the changes, but any result Google will return is spot on.
The changes between iPhone OS versions which have been released are available on the iPhone developer site.

Related

Supporting old iOS versions and devices

I need an iOS app to be compatible with previous iOS versions, at least from 4.0, and also with prior devices (iPhone 4S, 4, 3GS... and likely all iPad devices). I found some posts dealing with the iOS versions backwards compatibility that already have some years (for example, How to build against older iOS versions with the latest Xcode downloads?), and I donĀ“t know if this is deprecated or it still is the way to proceed, at least concerning the app building. Regarding programming issues, I guess I should check the documentation to know if the SDK features/libraries/frameworks I want to use are supported by all the iOS versions I want to be compatible... And having such information, how could I check programmatically the iOS version the device is running, in order to provide a certain feature or not?
On the other hand, regarding iOS versions and devices running them: could I find any Apple document listing which iOS versions supports each existing device? What hardware-dependent issues should I take into account while developing the app?
Thanks so much
Edit: Target architecture(s) is the only hardware consideration I've to take into account? Knowing that, for example, an iPhone 3GS is able to run, and is running, iOS 6.1.3, can I assume that the device will then support all the SDK's features, or I still need to check for the availability of such features depending on the device?
with the newest xcode version that supports iOS 6.0, you cannot develope for devices with iOS < 4.3 (lowest base SDK), and also the version that supports iOS 4.0 doesn't support iOS 6.0. For older devices you have to set the Architectures to armv6 armv7 in you project-settings tab "Build Settings".
for checking the iOS Version running, just check the available posts here at stack, you will find one that fits for you ;)
All in one I would set the base SDK to 5.1 because it's the last that can be used by iPad 1 and iPod touch 3. gen. and long enought available so everyone should have the latest update.
Older devices can have only iOS 4.2.x and are not supported by current xcode (4.6.2 (4H1003)).
iOS Support Matrix v2.4
This version is updated and includes iOS 7.
Link: http://www.iossupportmatrix.com
There is a great infographic that shows what versions of iOS are supported by which devices at http://iossupportmatrix.com.

iPhone App Run Different iOS

I am getting a fat binary when I go to upload, and I want to make sure that my application can run across 3.0, well even 2.0. Is there a specific way to make sure that this will show when I go to upload. I am not using any specific iOS 4 features, and I only have iOS 4 in my xCode. How can I test different iOS version?
The only way as I could think of is test your app on real old OS version devices. Since Apple prefers its users to upgrade to new OS version as soon as possible, they don't actually provide an official way for developers to test such backward compatibility.
Another relevant questions would be, "can I downgrade my device OS version to an old one, so that I can test my app on them?" I once did a research on SO and other Apple forums, and the result I got was NO, we developers don't have a way to "officially" downgrade our device OS version. Yes there are exceptions, you can try jail-breaking and then downgrading.
For jail-breaking / downgrading your OS version, check this post, A TimeMachine taking my iDevice back to 3.1.2? .
Edited: It's actually pretty easy to make sure that users with old OS versions can downloaded and install your app. All you need to do is set the Deployment Target in Xcode to the lowest OS version you want (iOS 3.0 would be the lowest in Xcode 3.2.5).
However, you need to bear in mind that such Deployment Target only ensures that your app can be downloaded and installed on such old version OS devices. They don't ensure compatibility during runtime. You still need to test your app on real old OS devices to ensure compatibility.
I dont think u need to worry about app version 3.0 below because it is not supported anymore. but how to test on different version, make sure change the iOS deployment target as Thomas refered.
There is no currently supported way to do this.
No current Simulator or Xcode tool will ensure that an app is completely compatible with an OS version older than the SDK used. The 2.0 SDK is not compatible with the current development tools. There is no officially supported way to downgrade a device.
Furthermore, Apple no longer even accepts app submissions that have a deployment target lower than 3.0.
Even most old 1st gen devices, if you can find one on eBay, have been upgraded to iOS 3.1.3. But if you have access to an old device running iOS 3.1.3, you can use that for testing. Many developers keep an old used iPod Touch around for just his purpose.
People with devices running something older than 3.1.3 are not only a really tiny percentage of the installed base, but are very unlikely to be still buying apps for that device. Even large developers with staff and legacy hardware available for this testing rarely waste the time on this market.
Look into Project -> Edit Project Settings -> iOS Deployment Target: 3.13. And then build?
Edit according to comment: You still need to ENSURE your code is within the runtime scope, i.e. do checks like 'respondstoselector' before calling methods in question.

Where can I download iPhone 3.1?

I develop for iPhone, and I want one of my test devices to have 3.1 on it. It is nowhere to be found, at least not on the apple site. Current version is 4.x and that's the only one I can get there, besides I have 10.5 on my MAC so I have no real choice
Does anyone know where I can get this version
It is not possible to downgrade (or even restore to any non-latest firmware) on an iPhone/iPod newer than an iPod touch 2G/iPhone 3G. This is because on the 3GS and newer devices, Apple implemented a system where they must agree to and sign every firmware restore.
You can read more about it here: http://saurik.com/id/12
To get around it, you can save your "SHSH", which is the signature Apple gives you when they approve a restore. To do this, check out TinyUmbrella, but be warned that you can only save it for the latest firmware (iOS 4.2 at the time of writing, since that is all Apple will sign), and cannot use this to go backwards unless you already saved it for your target firmware.
version 3.1 for iPhone 3G/3GS/Touch
You can get all versions from there :]

Testing iPhone Software on Different Versions Of OS

Before submitting my app I want to test it on devices with the full range of iPhone OS available. So, I have 2 questions that I am struggling with and would greatly appreciate any help or advice.
What versions of the OS are in use?
I know that the App Store will only accept apps for 2.2.1 and 3 but all the features I'm using have been available since 2.0. Is it safe to assume that everyone is running at least 2.2.1?
Where can I find the other OS disk images, so that I can do the test?
The iPhone Development Guide (p43) says search the developer website but I can't find them.
Searching the internet just seems to throw up jailbreak sites.
I can see some dmg files that were installed with the SDK at:
Macintosh HD/Developer/Platforms/iPhoneOS.platform/DeviceSupport/x.x
but XCode Organizer ignores them.
Any help or advice would be greatly appreciated.
Many thanks in advance.
If you just need to test it on the simulator (which is a good approximation of the actual iPhone OS as far as API's are concerned) you can change the OS version by going to Hardware > Versions and selecting your version on the iPhone Simulator app. For me, I see 2.0, 2.1, 2.2, 2.2.1 and 3.0.
Edit: Here's a site that has older versions of the iPhone firmware:
http://www.felixbruns.de/iPod/firmware/
Theoretically you can just "restore" to these older firmware through iTunes, although I haven't tried doing it myself.
What versions of the OS are in use?
Unfortunately this information isn't readily available. I'd love to know. It's clear that virtually all iPhone owners will have moved to 3.0, since it's a free download and there's no good reason not to. For iPod touch users it's not quite as clear, but my guess is that a good chunk of them have not upgraded. I would speculate that there is a strong correlation between the people who have upgraded at the kind of people who pay for applications, but speculation isn't necessarily a very good business case!
Where can I find the other OS disk images, so that I can do the test?
If you want to be all official and above board, you actually can't downgrade an iPhone or iPod touch to an earlier OS release. There are ways of doing it but I can't tell you what works and what doesn't as I've never tried.
The way I do it is test on my handset which usually has the last released version or a late beta. I then use the Simulator and my beta testers to check out how it works on older versions.

iPhone 2.2.1 to 3.0 Transition Best Practices

Apple is now requiring app developers to submit apps that target 2.2.1 but also build for 3.0. I (and I imagine a large majority of small/part-time developers) only have one iPhone and since the upgrade to 3.0 is irreversible, I wanted to get some thoughts out there as to what are some best practices for minimizing risk during the transition.
I understand there is no foolproof way of doing full regression testing on both OSes, but any thoughts on how one might minimize regressions would be helpful.
Here's Apple's exact text:
Millions of iPhone and iPod touch
customers will move to iPhone OS 3.0
this summer. Beginning today, all
submissions to the App Store will be
reviewed on the latest beta of iPhone
OS 3.0. If your app submission is not
compatible with iPhone OS 3.0, it will
not be approved.
Existing apps in the App Store should
already run on iPhone OS 3.0 without
modification, but you should test your
existing apps with iPhone OS 3.0 to
ensure there are no compatibility
issues. After iPhone OS 3.0 becomes
available to customers, any app that
is incompatible with iPhone OS 3.0 may
be removed from the App Store.
You really can't test on a device against both 2.21 and 3.0 unless you have two devices. If that's really important, you can think about an iPod Touch (assuming your app doesn't require an iPhone).
As far as the simulator, once you install the 3.0 sdk you won't be able to build targeting 2.2.1 any longer. The old 2.2.1 build target gets replaced by a 3.0 target. To support both, you should think about building a virtual machine that retains the 2.2.1 sdk.
However, I agree with Alex... not much need to think about supporting both platforms. 3.0 is solid, and it's clear from today's Apple mail that it's now the major focus, as far as testing & compatibility.
Edit 5/17/09: One thing I learned after this post is that on the Mac, you can't virtualize the Leopard client OS. Apple only allows you to run the server version of OS X in a virtual machine. IMHO, this really limits software developers as a group, among others, and I hope this is changed eventually.
What is your concern about upgrading your phone from 2.2.1 to 3.0? The latest revision seems more or less solid.
I came across this doc on the iPhone Dev Central that might be useful: Technical Note TN2246