46

I get this warning on Xcode 12:

The iOS Simulator deployment target IPHONEOS_DEPLOYMENT_TARGET is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99

How to support this version?

Paulo Mattos
  • 18,845
  • 10
  • 77
  • 85
aturan23
  • 4,798
  • 4
  • 28
  • 52
  • 2
    If this is for an app to be distributed, you should consider that iOS 8 has almost no users according to various statistics sites. – Phillip Mills Jul 23 '20 at 14:34
  • To emphasises @PhillipMills' point, all devices supported by iOS 8 are also supported by iOS 9. It's extremely rare that people have iOS devices on which they don't install OS updates but for which they do actively download or update apps. – Tommy Jul 23 '20 at 14:52

7 Answers7

60

A short working solution is here! Just copy and paste the code snippet at the end of your Podfile and run the pod install command.

    post_install do |installer|
     installer.pods_project.targets.each do |target|
         target.build_configurations.each do |config|
            if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 12.0
              config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
            end
         end
     end
  end

In this case, 12.0 is the minimum supporting iOS version for AppStore submission. You can change it based on your project requirements.

Grigor Hakobyan
  • 774
  • 6
  • 8
  • This fixes that problem but it causes another error if you are using certain libraries. Flutter/ fatal error: 'Flutter/Flutter.h' file not found when using the current path provider. – Nicholas Muir Jun 19 '21 at 07:15
  • @NicholasMuir here is the updated code that also solves that second error with the Flutter.h file https://stackoverflow.com/a/70316588/8094969 – bm888 Dec 11 '21 at 15:49
19

This is a problem with the target at your cocoa pods. To me, the answer was to put this code at the end of your pod file:

 post_install do |installer|
     installer.pods_project.targets.each do |target|
         target.build_configurations.each do |config|
             config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf'
             config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
             config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES'
         end
     end
  end

It resolved all my problems, compiling and archiving the project.

Another way is just to change the IPHONEOS_DEPLOYMENT_TARGETin the pods project like described in this image:

enter image description here Best regards.

Andres Paladines
  • 1,142
  • 14
  • 19
9

Update: To fix this issue you just need to update the Deployment Target to 9.0. This can be updated by opening the .xcworkspace file, choose the Pods.xcodeproj on Xcode, and updating the iOS Deployment Target to 9.0 or later as depicted in the below image.

Pod project deployment target

Another easy fix is to add the following to your Podfile and running pod install on terminal in the directory.

post_install do |installer|
 installer.pods_project.targets.each do |target|
   target.build_configurations.each do |config|
     if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 9.0
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
     end
   end
 end
end

Previous: You can't provide support for iOS 8.0 on Xcode 12 unless you import the support files. To provide support by default you would have to use Xcode 11. It would be better to check for the number of users that use your app on iOS 8 and update the minimum supported version to iOS 9 or higher.

Sandy Garrido
  • 168
  • 5
  • 21
Frankenstein
  • 15,732
  • 4
  • 22
  • 47
9

Flutter now requires an additional line for this to work as of late 2021.

Paste the updated code snippet below at the end of your Podfile and run pod install command.

  post_install do |installer|
     installer.pods_project.targets.each do |target|
         flutter_additional_ios_build_settings(target)
         target.build_configurations.each do |config|
            if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 10.0
              config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
            end
         end
     end
  end

Note: If you have the below code in your podfile, then replace it with the above code.

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end
bm888
  • 541
  • 5
  • 10
3

This is happening because support for iOS 8 has been dropped in Xcode 12 but the minimum deployment target for the offending pod is still iOS 8. This is documented in the Xcode 12 release notes:

Deprecations

  • Xcode now supports debugging apps and running tests on iOS devices running iOS 9.0 and above.

Workaround. You can append the following to your Podfile as a workaround for now (and then run pod install as usual):

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 9.0
        config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
      end
    end
  end
end

This will remove the deployment target settings from all pods using iOS 8 or below, allowing them to simply inherit the project deployment target that you have specified at the top of your Podfile. For instance:

platform :ios, '10.0'
Paulo Mattos
  • 18,845
  • 10
  • 77
  • 85
0

I also needed to add

s.platform = :ios, "9.0"

to my .podspec file for this to work, as well as the post_install script from any of the above (or below) answers.

Note: s.platform was

s.platform = :ios
-2

I'm using Flutter so my steps:

  1. delete Podfile.lock file
  2. Change to platform :ios, '10.0'
  3. delete Pods folder in ios folder
  4. Goto Terminal and Pod install everything
  • If you have a new question, please ask it by clicking the [Ask Question](https://stackoverflow.com/questions/ask) button. Include a link to this question if it helps provide context. - [From Review](/review/late-answers/30046129) – JDOaktown Oct 11 '21 at 15:39
  • If you are using Flutter, you should not have to do Pod install manually, it is done when you build and run the project, at least that is how it is with Android Studio, not sure about VS Code :) – Martin Berger May 26 '22 at 08:45