Flutter 'IPHONEOS_DEPLOYMENT_TARGET' 设置为 8.0,但支持的部署目标版本范围为 9.0 至 15.4.99

Nic*_*uir 5 xcode ios cocoapods podspec flutter

在过去的3年里。我可能在这个问题上花了两周时间,如果您正在克隆和处理其他人的项目,它经常会出现,但通常不会出现在您自己的项目上。

stackoverflow 上有大量答案,有时你使用一个答案并且它有效,而有时你必须使用另一个答案。我已经解决了这个问题无数次,但每次都没有相同的解决方案有效。

这是错误:

“IPHONEOS_DEPLOYMENT_TARGET”设置为 8.0,但支持的部署目标版本范围为 9.0 到 15.4.99。

这个错误实际上来自哪里,需要更改 flutter 中的哪些设置。我将列出下面所有能够在错误发生后修复它的方法,但我想知道首先导致此问题的设置在哪里。

这些是我用来解决此问题的设置和方法:

更新pod文件平台:

# Uncomment this line to define a global platform for your project
platform :ios, '13.0'
Run Code Online (Sandbox Code Playgroud)

更新AppFrameworkInfo.plist:

<key>MinimumOSVersion</key>
<string>13.0</string>
Run Code Online (Sandbox Code Playgroud)

在 Xcode 中更新运行器部署目标:

在此输入图像描述

在 Xcode 中更新 pod 部署目标:

在此输入图像描述

更改 podfile 中的脚本(这有效,但会导致其他错误):

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end
Run Code Online (Sandbox Code Playgroud)

对此

  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 < 13.0
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
        end
     end
 end
Run Code Online (Sandbox Code Playgroud)

结尾

更新 Xcode 中的项目格式:

在此输入图像描述

还:

  • 删除 Pod 文件
  • 删除podfile.lock
  • 删除 pod 目录
  • 删除 .symlinks 目录
  • 扑干净
  • 分解豆荚
  • Pod 缓存清理 - 全部
  • Pod 存储库更新
  • 吊舱更新
  • Pod 安装

我想知道这个错误是否代表了真正的问题,或者是否完全是其他问题,因为如果您查看生成的 podspec 文件,它会将 ios.deployment 目标列为 9 而不是 8?错误来自哪里?在 Flutter 中可以在哪里更改此错误?

谢谢