IOS App Version Support After uploading to library - iphone

I have successfully uploaded IOS app onto app store and the current status is "Waiting For Review", so my question is after my app successfully comes on store, will it support for all OS versions of Iphone or do i need to make some specific changes in Xcode / apple account / my Code to make it happen.
plz help..
Note : target OS is 5.0..

When you develop an app then you need to specify Minimum Deployment Target for your application. App will only run on those devices which has iOS equal or grater to this value. If you specify min deployment target to 5.0 then you app will only run on devices which has iOS 5.0 or later. Also it doesn't mean that your app will successfully run on all versions grater then iOS 5.0
Once you submit your app to app store then you can't change it. if you want to do this then you need to add another version. If your app is in "Waiting for review" then you have the option to use developer reject and re-upload it.

It will support the version set in the target or greater.
Select the root project file, and in the info tab - set the minimum deployment target to 4.3 (for example). You will have to fix any errors that arise (for instance lack of support for 'automated __weak references')
Once you again successfully compile the application, re-submitted it to the AppStore with that version

Related

Xcode 4.3.2 - Base SDK for Distribution of App

I am trying to distribute an iPhone App to the App Store for the first time. Currently, I am following this guide: Submitting iPhone Apps To The Apple App Store – A Step by Step Guide. Currently, I am on the step where I have to set the Base SDK field value. See, the screenshot.
As you can see, iOS 5.1 is the only choice available there. Now, if I set it as Latest iOS(iOS 5.1) - the default value - will the distributed app will be able to run on older OS's, for example iOS 3 or iOS 4? If not, then what will I do to make it run on older OS. Or, is there anything I misunderstood about BaseSDK?
No worry it will function in the older os you need to keep the deployment target minimum SDK which you can find in the picture if you updated the xcode with simulators of IOS 4 and 5 you can get these options
Update
Basically it means that you're going to be able to use all the API that is public in 5.1 SDK. This has nothing to do with "Which phone your app can run on".
iOS deployment target on the other hand, is asking you which devices can this app run. This is quite a dangerous question, since you can then say from iOS 3.0 to 5.1 for example. This means that your app can be installed in any iPhones running iOS 3.0 to 5.1, no matter what the phone is. That means the original iPhone and iPhone 3G can run your app if they have at least iOS 3.0 installed. You should test your app carefully if you decide to do this. Apple does not provide any way to test on older OS. You'd have to devise that strategy yourself.

Can I prevent users with a too-old OS version from downloading my app?

I currently have an app in the app store that works for iPhone users running iOS version 3.0 or newer. My next version of the app is going to use ARC, so it will only work for users running iOS version 4.0 or newer.
According to this answer, the users will be able to download the newer version, but it just won't run when they try to run it.
Is there any way to prevent users who can't run the app from even downloading it from the AppStore?
I haven't tested this recently, but in February 2011, and iOS 4.x, I had users who couldn't download my app as there device wasn't running the required version of iOS.
They received a nice explanation message on their device, courtesy of the App Store app, when trying to download the app directly to their device.
I'd be very surprised if this wasn't still the case.
So, set the deployment target in your target build settings, and let the App Store / iTunes take care of who can install it.
That was for new installs, and it be different for updates (rather than new installs) but again I'd be surprised if this wasn't handled by Apple for the sake of a better user experience.
UPDATE
I dug out my old iPhone 3 which reached the end of the road at 4.2.1 and resynced it with iTunes - the latest apps that require 4.3 etc are ignored, and are not overwritten with incompatible versions, as I would expect.
I also tried to update my own app (I'm a developer), requiring 4.3 and above, from the store via the device itself, and got a polite pop-up alert saying the app requires iOS 4.3 and above, again just as I'd expect.
The app was previously compatible with < 4.3, and somewhere along the line I bumped up the minimum iOS version requirement, so it is definitely possible.
So, you should just set your updated app's 'deployment target' version appropriately, and it will only be updated on compatible devices.
No. A new higher minimum Deployment target will prevent a user from installing an app on a device with a lower OS version, but will not prevent them from downloading the app using iTunes on their Mac or PC, even though they can't install the update once downloaded.

If my build targets iOS 5.0, what happens when older OS versions try to download/run it?

I recently submitted an app to the app store. My iOS version target is 5.0.
What will happen when users with older iOS versions try download my app?
If users download it from iTunes on their computer, it will download but they won't be able to sync it to their iDevices. But if they try to download it directly from their iDevice, the device will pop up an alert, saying that they won't be able to download it.
But, most app right now has lower iOS version target for broader audience.
When users of an older iOS try to buy/install it they will get an alert that says they need iOS5 to run this app....and not be able to purchase
If you want to actually test this, you can change the target build for your app and run it in a simulator/test phone to see what happens.
If there is anything that is in your iPhone app that is iOS 5 only, there should be some problems. ARC and weak references are compatible with iOS 4.x, but not iOS 3.x.
EDIT: Make sure that the minimum OS required is not also set to iOS 5, because then it will not run on any lower OS version.

iOS app unable to be downloaded due to target

I submitted my first app last week (yay) and accidentally left the target as 4.3 which really limits who can download the app. I submitted an update that targeted 3.0, which was approved and is on the app store now. The binaries say 3.0, the requirements say 3.0, yet when I install it on a device without 4.3 it still says "This application requires iOS 4.3. You must update to iOS 4.3 in order to download and use this application."
Whats going on here? Any help would be awesome.
I would suspect that you set the deployment target to 3.0 in your project and still have the 4.3 (or latest) setting in your target, which is more specific than the project's setting and overrides it.
I had the same problem with an app (4.2.1 compatible, previously only 4.3+) that hit the App Store last night and wouldn't install on a 4.2.1 device until this morning. Interestingly though, the new binary was most definitely on the store since it installed on an iOS 5 device and had new features bundled with the new build.
I assume there's some separate versioning server or something that isn't synchronized with the download servers, because it does seem to lag for several hours.

App Store bug on certain iOS/Hardware and not others

I am about to submit an iPhone app to Apple for the first time. I was wondering: if they find a bug only in iOS 3.0 (for example) would they allow you to release only for iOS 4.0 (and above) even though you targeted 3.0 and above?
Likewise, if you have targeted the original iPhone device, but there is a bug found when your app is run on it, but not on any of the other devices, will they allow you to release for those?
Or is the answer to the above "NO. You have to debug, resubmit and wait yet another month".
Thanks!
No; if you set your deployment target to 3.0 and it doesn't work on 3.0 and above, then your app should and probably will be rejected. Your only option is to either thoroughly test on older OS versions, or raise your app's deployment target to a version which you're confident your app will work on.
You can change the deployment target to any version you want as minimal requirement... so if your app requires 4.0 or 4.2 you can set this and it won't have to run on old devices.
On the other side your app has to run without crashes on actual 4.3 devices.. you can't submit an application that only runs on old devices.
If you change the deployment target you have to recompile and resubmit.