Minimum OS version number, iPhone app - iphone

I've built an iPhone app which is live in the app-store. When originally submitting the app it showed up in App Store as requiring iPhone OS 3.1.3. When later updating the app I made sure my settings in Xcode for the target for the app store build had the Base SDK version set to 3.1.3 and the Deployment Target version set to 3.0, however it still shows up in app store as requiring 3.1.3.
From what I've understood the Deployment Target version is the one setting the requirement in app store?
Or is there any information concerning this that I should have updated in iTunes Connect when submitting the updated app?
Thanks, Michael

Check the MinimumOSVersion key in your info.plist

You can set base SDK for your application from edit Project settings
Base SDK

Related

Error Submitting App to Appstore

We are getting following error when we try to validate our app.
"This bundle is invalid. Apple is not currently accepting applications built with this version of the SDK."
Our Xcode is 4.3 Build 4D1002.
Base SDK 5.0
Can you please let me know the solution?
App-Store doesn't accept apps which are compiled with Beta versions of the SDK
You need to check if you are using beta version of the SDK.
Please check it and let me know if you need more help.
Refer to this link:
bundle is invalid. not accepting applications built with this version of the sdk
Refer to the link here: http://www.redmondpie.com/download-5.1-beta-3-for-iphone-ipad-ipod-touch-ota-devs-only/. It says The first beta release of iOS 5.1 also saw the release of Xcode 4.3 (build 4D1002) to developers.
So I would suggest you to use a fully released version of Xcode (may be Xcode 4.2) and then submit your app using that.
Hope this helps.
Try to install the actual Xcode (with the final-version of iOS 5.1) and set the Base SDK to the latest one. You can reach backward-compatibility with the Deployment Target.
Here's things I've covered;
No memory leaks
Tested performance on an actual device
Doesn't crash :)
Using correct certificates / profile
What I'm a little unsure about are how to configure the "Bundle Display Name" /"Bundle Identifier" and "Bundle Name" in info.plist. I understand the first is the text that's shown on the iPhone itself, but what about the last? Does this have to match Bundle Identifier?
Are there any other things I should add to the info.plist? I've noticed that when built for Adhoc distribution my app does not have any author/title information in iTunes.

iPhone App doesn't get downloaded on iPhone 3G

I have created iPhone App supported with iOS 4.2 or later and tested on iPhone4.0 but it seems users are not able to downloaded my application on iPhone 3G. I couldn't find any settings specific to iPhone versions. What all I can see is the deployment target that is set to iOS 4.2. Could anyone please tell me what could be reason for my application not getting downloaded on iPhone 3G?
Thanks.
You should set your Base SDK to the newest version you have installed, and then set your Deployment SDK to the minimum FW you are planning on supporting, in your distribution/test/debug profile like this:
Base SDK: iPhone OS 4.2
Deployment SDK: iPhone OS 4.0
This way you get all the futures of your new base sdk and you set the minimum FW neded for your app to work. This should be set carefully, setting a Deployment too low may make your app go really crazy, eg. Base SDK: 4.3 and Deployment SDK: 3.0.
Hope it helps!

''Install Prohibited" iphone SDK

I am a registered Apple dev with the certificates, and mobileprofiles that i need. I have made several apps in xCode that I would like to test on my 3GS, I have registered my 3GS as one of my allowed devices but it still will not install giving the install prohibited error. The Xcode is set to same profile as my iphone has. Just dont kmow what to do. well i guess i =ll download sdk 4.1
You will get this exact message if Restrictions are enabled on the device, specifically the restriction on installing Apps.
You need to upgrade your SDK to 4.0.1 to use it with iOS 4.0.1 devices.
Is the iPhone OS Deployment Target in your Build Settings (either for the project or for the target) set for an OS version higher than the one on your 3GS?

Can a user install iphone application developed using 3.1.3 in his iphone 3.0?

Can a user install my application from iTunesStore if he is having iPhone OS 3.0 or having lower version of iPhone OS and I have developed my application using iPhone SDK 3.1.3...
Can anyone help me with this...
Thanx in advance...
In you projects settings, use a build setting named "iPhone OS Deployment Target" to specify your minimal iPhone OS version.
To do that, double click the blue project icon (at the top of the project’s "Groups and Files" table), click the "Build" tab and find the setting in the "Deployment" settings section.
To use features from a later iPhone OS, see this question.
If you compile your application to target iPhone OS 3.1.3 then it will not run on 3.0 - instead the user will get a message telling them to update their OS when they try to install.
However, there's a good chance that you will be able to compile your app to target 3.0 as long as you're not using any specific 3.1+ and newer features. To do so, just change the Active SDK you target in Xcode before you compile. Then your app will run on both 3.0 and 3.1.3
If you set your Target SDk in Xcode to 3.1.3, you may be using features of the SDK not found on an iPhone running a lower OS. However, you can test for those features in your program and take alternative measures if the user does not have those features/frameworks available. There is nothing that will prevent your app from running on older iPhone OSes, other than the fact that using new features will cause the app to fail.
On the other hand, you use the Deployment SDk value of XCode to limit which iPhone OSes can actually run your app. This way you can limit the app to be available to only iPhones with later OS and not the earlier ones. The Apple iTunes App Store will use the Deployment SDk value to tell the user who is purchasing, what the minimum system requirement is too.

iPhone: Minimum OS, Deployment Target & Base/Active SDK

I'm a little confused about building an app for the app store and for the correct SDK & OS version. I have submitted my app to the app store, and in the app details screen of iTunes connection it says:
"Minimum OS Requirements : 3.1.2"
I haven't seen any apps on the app store that have 3.1.2 as the min OS, they all say 3.0. I read several things on here before I built it and I thought I understood everything!
Basically, my app doesn't use any code that only exists in > 3.0 so I would like the minimum OS to be 3.0. My build settings were:
Target Info
Base SDK: iPhone Device 3.0
iPhone OS Deployment Target: iPhone OS 3.0
Xcode Main Window
Active SDK: iPhone Device 3.1.2
I've heard about a minimum OS version being put in the Info.plist but I haven't got anything like that in mine.
I build the app exactly like that and submitted it. Are my app settings correct? Will my app display 3.0 in the app store or 3.1.2? I'm a little unsure as to why you set the Active SDK to the latest (3.1.2) when you want to target 3.0 , 3.1 & 3.12 devices, but it's what I read!
Any help advice be greatly appreciated!
Okay I've managed to figure it out after much reading!
Basically, the Active SDK is just a build time override of the Base SDK. By default, when the Base SDK changes it automatically changes the Deployment Target to the same OS as the SDK. So when I wanted to build the app under the 3.1.2 SDK but have it run on 3.0 OS, I changed the Active SDK to 3.1.2, but that had automatically changed the minimum OS (deployment target). I saw this by looking at the Info.plist file in the package contents in my .app file.
So the best thing to do is to set the Base SDK to the latest SDK (currently 3.1.2) and then manually set the Deployment Target to 3.0 OS. Once the 2 are different then it will no longer automatically change.
However, this means that your app can install on a 3.0 device that may have 3.0, 3.1, or 3.1.2 SDKs. Therefore, any frameworks, methods or properties you use that are only available in SDKs greater than 3.0 you will have to use conditionally.
When you get around to building the app, ensure that that Active Target is set as the same as your Base SDK, e.g. Device 3.1.2. But remember to compile your app under Device 3.0, Device 3.1, and Device 3.1.2 just to check for compiler warnings. This will ensure that you don't have any code accessing methods/frameworks that don't exist in any SDKs down to your Deployment Target.
I hope this helps anyone who is in my position and couldn't find a simple explanation of how it all works.
The SDK Compatibility Guide was very useful and informative. However it took just a little extra figuring out for me to be comfortable with the concept and how everything works. This image from the guide is useful:
(source: apple.com)
Go to the Project Info->Build and look at IPHONEOS_DEPLOYMENT_TARGET property
Actually I use 3.1.2 SDK and building an app that work nice on every OS higher than 2.2.1