iOS 3.0+ compatibility for iPhone app - iphone

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.

Related

Will iphone 5.1 deployment target reach all iphones upon release of ios 6?

I am new to iphone app development and am wondering which deployment target to use (as ios 6 approaches). My app is simple (http web service interaction, map) and my natural inclination is to target 3.1 to maximize potential use. However, I understand that ios 6 will soon be available to all iphones and I presume it will be widely adopted.
So, if I target 5.1 today, will my app be available to most, if not all, iphone users once ios 6 is released?
Right now, requiring a minimum of 5.1 is a bit bold in my opinion, but that depends on your app. It is customary to support the current version and the previous major release.
If you want to expand your target, you may considering going back to 4.3 or even all the way down to 4.0. But 3.x is practically obsolete. but:
Warning: Don't target a version you can not test on device. If you don't have a device running 4.0, testing your app only on the 4.0 simulator is not recommended (although perhaps it is OK. No assurance).
The iPhone 3G can run up to iOS 4.2.
All other phones and iPads can run the latest OS (5.1.1)
Not sure about iPod Touch devices but 3rd (and 4th) gen. should run iOS 5.
You can use 5.1.1 as deployment target if it is available to your menu.. if not 5.1 is best for your needs for now.
This way all (Who have not updated to IOS 6) can use your app...
Best luck for app development.

How to test iOS 5.0 app on Xcode 4.2?

I can change my deployment target from 3.0 to 4.3 and test that my application is compatible with all these versions but how can I test if my application is compatible with all versions including iOS 5.0? Any idea regarding the same? Also note that I have iPhone 3GS with iOS 4.0.2 and need to test in iOS 5.0. Hope to get a good help. Thanks.
Eventually, you'll need to get a device that has iOS 5 installed. Without that, you can only test this in the iOS 5 simulator.
Also note that changing the deployment target is not enough to test if your app is compatible with that OS version. Basically, this just means that you promise that it'll run from this version upwards, but it doesn't enforce that you don't use any APIs that might not be available there.
I you wanna do it properly, you will have to get every device there is, with every version you want to support ... that is, imho, overkill. I just test my Apps on the 4.3 and 5.0 Simulator in XCode and on my 5.0 iPhone 4. And have not had any problems with that 'til now.
BTW you should update your 3GS to 5.0.1.
To test in the simulator with iOS5, you can set the OS version with the Version submenu of the simulator's Hardware menu.

Publishing iPhone app that supports iOS 3.1 plus

We are about to issue version 4.0 of our iPhone app and have had some complaints recently that previous versions are only available from iOS 4.1 plus. I know that to change this I can set my Deployment Target (In Project>Build) to iOS 3.1. However, I've run through the app on an emulator and again on my iPhone (uses iOS 4.2) but I'm not able to test on anything older as everyone here has the same iOS or 4.3. Can I safely assume that just by changing the Deployment Target and testing the app on later models that the app will run safely on later versions like 3.1.
We are familiar with the reason why people with older iPhones wont upgrade to iOS 4.0 and above, so we would like to accomodate them but not if it means the app is unsound and we have no way of testing it.
No, just because it compiles and runs on newer version of the SDK does not mean that it will work on older versions. If you're using features that are only available in iOS 4+ you'll need to check for their existence before using them; your app will crash otherwise.
There are some subtleties that you'll probably miss the first time too (or at least I did). In short, there's no real alternative to testing.
for the problem you have you need to install older versions of xcode having ios 3.0 support and you need to check whether it's working on the same or not as there are lots many changes in os 4.0 and above so it's definite that the application will not work with the ios 3.0, 3.1 available device and it will crashed.
Just install older version of SDK and test on simulator , if works then fine else you need to make code according to ios version 3.0 and ios version 4.0 in your code by differentiating the os and run the code accordingly.

Getting a iPhone OS 2.2.1 app approved after the OS 3.0 release

I’m writing a new iPhone app which doesn’t depend on any of the 3.0 APIs. 2.2.1 should work fine and has a substantially larger user base currently and in the near future as last I checked Apple was expecting iPod Touch owners to cough up $10 to upgrade to 3.0. That leaves a nontrivial number of cheap users who will stay with 2.2.1 as long as they can.
So my goal is to build and release this app using 2.2.1. I know that all app store submissions must run on 3.0, and I plan to do plenty of testing on 3.0. The language on the iPhone OS 3.0 Readiness Checklist leaves me optimistic, but will Apple continue to accept 2.2.1 app submissions (and for how long?), or will they laugh manically and reject any 2.2.1 apps simply to force 3.0?
The main question:
Has anyone on SO released a 2.2.1 compatible app after 3.0 was released and had it accepted (or explicitly rejected with 3.0 being the reason)?
You must test it against both 2.2.1 and 3.0 then I can't see any problems - but I wouldn't assume it will work with both - you must test!
My own app (Task Coach) was built for 2.2.1 (on the 3.0 SDK, but that's irrelevant) and was approved last week, so go for it.
They won't reject a 2.2.1 app unless it fails during 3.0 testing. You should be all set.
Why would they ever stop supporting apps that run in 2.2.1, provided they run in 3.0? You are just not taking advantage of new features, not building a fundamentally different app.
well now it has changed a little. New apps usually come only for iphone OS 3.0 as well as other iphone OS 3.0 approved apps that now longer support 2.2.1 so like for my reson i need the iphone 3.0 software update for ipod touch as for almost every app i want to get doesn't support 2.2.1

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