Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting the Minimum iOS version in XCode

I'm fairly new to Xcode as I use CocoonJS to build my HTML5 iPhone game but I want to know how to correctly set the minimum iOS version. I've set my deployment target to 8.0 and did a clean and then a build but when I submit to the app store it says the minimum iOS version is 6.0.

The next thing I tried was manually updating this value in the info.plist but then I get an invalid binary in iTunes Connect saying

Minimum OS Version Mismatch - The minimum OS version (LC_VERSION_MIN_IPHONEOS) in the binary ('6.0') for architecture ('armv7') differs from the MinimumOSVersion ('8.0') in the Info.plist

How do I update the minimum iOS version correctly without screwing up my binary? I've checked other threads but they all just say to update just the deployment target.

like image 253
JamesR Avatar asked Apr 19 '15 22:04

JamesR


People also ask

How do I change the minimum iOS version in Xcode?

iOS Deployment Target set to 14.1 or whatever version you want to be minimum inside the Target > Build Settings > Deployment for all instances. The deployment info in Target > General > Deployment Info is set to the minimum support version before the iPhone checkmark.

What is the minimum iOS version?

The minimum supported release of iOS is iOS 11.

How do I change target iOS in Xcode?

To change your deployment target, open up your project file in Xcode and check the setting under Build Settings -> Deployment(...) Check this answer to add earlier devices support.

How do I change the minimum deployment target in Xcode iOS?

Simply make a manual update to the Development target in the Xcode Pods file. It is your pod files deployment target iOS Version, not your project deployment target iOS Version, that is causing the issue; thus, you must update the deployment iOS version for your pods to anything more significant than 8.0 as well.


2 Answers

Assuming you're building against the 8.x SDK, and you have set the deployment target to 8.x or higher, that'll be enough.

However, I'd imagine you set the deployment target the wrong place in Xcode. You'll need to set it under your Project and not under your Target. Alternatively, if you have a .xcconfig file, you can change it by setting

IPHONEOS_DEPLOYMENT_TARGET = 8.1

If you don't have a .xcconfig, you can verify the deployment target, by opening your project.pbxproj file, and search for IPHONEOS_DEPLOYMENT_TARGET, and check if it's set to your expected value.

like image 148
Claus Jørgensen Avatar answered Oct 17 '22 22:10

Claus Jørgensen


If you have Xcode .xcworkspace setup, say coming from ReactNative background, you would need to make sure:

  • iOS Deployment Target set to 14.1 or whatever version you want to be minimum inside the Project > Build Settings > Deployment for all instances.
  • iOS Deployment Target set to 14.1 or whatever version you want to be minimum inside the Target > Build Settings > Deployment for all instances.
  • The deployment info in Target > General > Deployment Info is set to the minimum support version before the iPhone checkmark.

iOS Minimum Deployment Info

To Verify the minimum version is set properly.

  • Archive the project.
  • Validate and Distribute the Development version of the app.
  • Locate the folder where the ipa was exported
  • Open the .ipa with some archive utility software (example The unarchiver)
  • Drag or Open the Info.plist in any code editor
  • Search for MinimumOSVersion and check whether the minimum os version reflects the required version.

MinimumOSVersion in Info.plist

Even after updating the Deployment Targets the archive doesn't update with the set version, force exit xcode and re-open the workspace/project. Check if the settings from previous session were applied, look for every instance where 14.x or whatever the current minimum version is present and update to the one required. Probably quit the Xcode once again and re-open. Generate the archive again and it should be reflect this time.

like image 26
Animesh Singh Avatar answered Oct 17 '22 22:10

Animesh Singh