2

I am trying to understand how the compatibility does work and could not get the perfect answer out there. Many answers are confusing.

I want to understand if I develop an app targeting iOS 9, does it work on iOS 11.2 devices for example (forward compatibility)

and if I target iOS 11.2, is it going to be compatible with iOS 9 and 10 as an example (backward compatibility)

I found this answer where he is suggesting to download the image file for an older versions. When shall I do that? What is the case that requires downloading the images to my project?

This issue is giving me the following error: enter image description here

My iPhone is running iOS11.3 and my Xcode Project (Objective-c) is targeting iOS 10 and I am developing using Xcode 9.2

Jan
  • 747
  • 1
  • 10
  • 29
  • 1
    You are confusing the compatibility of the code and app you build with what devices Xcode allows you to run it on. Those are separate topics. Since Xcode will deploy the artifact directly, debug it, etc. it will need to understand iOS 11.3 which your Xcode version does not do. Upgrade to High Sierra, then upgrade Xcode and you can deploy to the device again. – luk2302 Apr 02 '18 at 17:37
  • thanks luk I will update. However, how about the compatability of the deployment target and iOS version. How does it really work? – Jan Apr 02 '18 at 17:40

1 Answers1

2
  1. Apple only supports 'forward compatibility'. You can specify your App's min OS support in its target. All OS version higher than the min target version will support your app. You can't make your app to support OS versions less than the target version.
  2. This "Could not locate device support files" error occurs when your Xcode is not compatible with the OS version of the device. In such scenarios, you can download those image and make your Xcode compatible with the OS version.
  3. "When to download the images??" - When you can't update your Xcode to its newest version( for eg: if you are using Sierra and no plans to update to High Sierra).
CoreOne
  • 46
  • 6
  • Thank Priyesh. I did not understand your answer in bullet 2. – Jan Apr 03 '18 at 15:42
  • 1
    Let's say your iPhone has an OS version 10.1. To run your app on your device through Xcode, your Xcode should have the support files for OS 10.1. If it doesn't have such support files, It will pop up these kinds of errors. To fix these kinds of errors, you could download these support file ( images) for the specific OS version of your device. – CoreOne Apr 03 '18 at 16:11
  • Is this assuming that my deployment target is higher that OS version 10.1? – Jan Apr 03 '18 at 16:46
  • It has nothing to do with your app's deployment target. Deployment target is your Apps config. It just indicates your app wont work in devices with OS version less than the target. Xcode can't run your project in 10.1 (even if your app's target is 10.1) device if it doesn't have the support files. Support files help the Xcode to run projects in the respective OS. – CoreOne Apr 03 '18 at 17:10