iOS 模拟器部署目标设置为 7.0,但此平台支持的部署目标版本范围为 8.0 到 12.1
The iOS Simulator deployment targets is set to 7.0, but the range of supported deployment target version for this platform is 8.0 to 12.1
我在 Xcode 10.1.
中收到以下警告消息
The iOS Simulator deployment targets are set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.1.
我的模拟器 os 12.1
Xcode10.1
并且我更新了我的 pod 文件。
我的部署目标是 9.0
在我的目标中
我解决了这个问题,我将 build system 从 New Build System
更改为 Legacy Build System
在 Xcode v10+ 中,select 文件 > 项目设置
在之前的 Xcode 中,select 文件 > 工作区设置
将构建系统从 New Build System
更改为 Legacy Build System
--> 单击“完成”。
试试这些步骤:
- 删除你的Podfile.lock
- 删除您的 Podfile
- 构建项目
- 从 firebase 添加初始化代码
cd /ios
pod install
- 运行 项目
这对我有用。
问题出在您的 pod 文件部署目标 iOS 版本中,而不是您的项目部署目标 iOS 版本中,因此您需要为您的 [= 更改部署 iOS 版本27=] 以及任何高于 8.0 的版本都可以打开您的项目工作区并执行以下操作:
1- 单击 pods。
2- Select 每个项目和目标并单击构建设置。
3- 在部署部分下,将 iOS 部署目标版本更改为 8.0 以上的任何版本
(最好尝试相同的项目版本)。
4- 对 pods 中的每个其他项目重复此操作,然后 运行 应用程序。
详情见照片
您可以将 podfile 设置为自动将所有 podfile 的部署目标与您当前的项目部署目标相匹配,如下所示:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
end
end
end
如果有人从 React Native 问题来到这里,只需删除 /build 文件夹并输入 react-native run ios
对于遇到此问题的 cordova 开发人员
尝试设置
<preference name="deployment-target" value="8.0" />
在confix.xml
迭代 Tao-Nhan Nguyen 的答案,计算每个 pod 的原始值设置,仅当 不 大于 8.0 时才调整它...将以下内容添加到Pod 文件:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if Gem::Version.new('8.0') > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '8.0'
end
end
end
end
您可以删除每个 pod 的 pod 部署目标,而不是在 pod post install 中指定部署目标,这会导致部署目标继承自 Podfile
。
您可能需要 运行 pod install
才能产生效果。
platform :ios, '12.0'
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
我们可以将项目部署目标应用于所有pods目标。
通过将下面的代码块添加到 Podfile 的末尾来解决:
post_install do |installer|
fix_deployment_target(installer)
end
def fix_deployment_target(installer)
return if !installer
project = installer.pods_project
project_deployment_target = project.build_configurations.first.build_settings['IPHONEOS_DEPLOYMENT_TARGET']
puts "Make sure all pods deployment target is #{project_deployment_target.green}"
project.targets.each do |target|
puts " #{target.name}".blue
target.build_configurations.each do |config|
old_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET']
new_target = project_deployment_target
next if old_target == new_target
puts " #{config.name}: #{old_target.yellow} -> #{new_target.green}"
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = new_target
end
end
end
结果日志:
如果您来自 react-native
并遇到此错误,请执行此操作
- 打开
Podfile
(您的项目 > ios>Podfile)
- 在 podfile 中评论 flipper 函数如下
#use_flipper!
#post_install do |installer|
#flipper_post_install(installer)
#end
- 在
IOS
文件夹内的终端中输入此命令 pod install
是的,就是这样希望对你有用
如果有人在更新到最新的 React Native 时遇到问题,请尝试使用
更新您的 pod 文件
use_flipper!
post_install do |installer|
flipper_post_install(installer)
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
首先将部署更改为您选择的:如“11.0”
并将此步骤添加到您的 pod 文件的最后
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
end
end
end
对于Swift
如果您使用 Xcode 12 的 CocoaPods,那么您可能已经看到了这个错误:
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.
发生这种情况是因为对 iOS 8 的支持已被删除,但 pod 的最低部署目标是 iOS 8。
在解决此问题之前,您可以将以下内容添加到您的 Podfile 中:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
这将从您项目中的所有 pods 中删除部署目标,并允许它们继承已在 Podfile 顶部指定的 project/workspace 部署目标。
对于 React Native
删除 ./project-root/ios/build 文件夹并输入 react-native run ios
科尔多瓦
<preference name="deployment-target" value="8.0" />
在 Flutter 中对我有用的简单修复:
- 删除
Podfile
和Podfile.lock
- 运行 应用程序:这将创建一个新的
Podfile
。这可能仍然 失败并出现错误。
- 在新的
Podfile
中,取消注释并将第二行更改为 platform :ios, '12.0'
(或您要定位的其他最低版本)
- 运行 再次应用,现在没有错误
此解决方案适用于 Flutter。打开 {your_project_root_folder}/ios/Podfile
并用
替换 post_install 块
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
platform :ios, '10.0'
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
您只需取消注释以下行
# platform :ios, '8.0'
或
# platform :ios, '9.0'
等...
然后在终端中打开 iOS 文件夹并传递这些命令:
% pod repo update
% pod install
如果有人在将 XCode 更新到 v13 后在 2021 年遇到这个问题,这里有一个对我有用的修复:
https://github.com/facebook/react-native/issues/31733#issuecomment-924016466
但是,这可能不适用于所有 react-native 版本,它适用于我的 v0.64。
我使用 Xcode 创建了虚拟 swift 文件,所以我自动收到了“桥接 Header”的请求
希望在未来的版本中解决这个问题。
我在构建 React Native 项目时遇到了同样的问题
cocoapods 版本更新对我有用(从 1.8.4 升级到 1.11.2)
为我工作:
rm ios/Podfile
flutter pub upgrade
flutter pub get
cd ios && pod update
flutter clean && flutter run
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install
以上大部分对我不起作用。如果你四处挖掘,你会发现你不应该 运行 手动安装 pod。对我有用的是确保我的物理设备已在 xcode.
注册
- 为 ios 打开 xcode 工作区。 select 您的设备(最有可能通过 USB 连接)并单击 运行。这将提示您让 xcode 注册您的设备。
- xcode 构建很可能会失败,这没关系 - 请参阅后续步骤
- 退出 Xcode!
- cd ios
- rm -fR Podfile Podfile.lock Pods
- 在 android studio 中选择有问题的设备,然后 c
这是 M1 MacBook 上的一个已知问题。 运行 flutter 升级,应该可以解决。
目前正在研究
M1 笔记本 12.0.0
颤振 2.10.0
飞镖 2.16.0
Xcode > Runner > Info deployment Target > IOS Deployment Target: 11
.
open terminal :
pod cache clean --all
.
pod update
我在 Xcode 10.1.
中收到以下警告消息The iOS Simulator deployment targets are set to 7.0, but the range of supported deployment target versions for this platform is 8.0 to 12.1.
我的模拟器 os 12.1 Xcode10.1
并且我更新了我的 pod 文件。
我的部署目标是 9.0
在我的目标中
我解决了这个问题,我将 build system 从 New Build System
Legacy Build System
在 Xcode v10+ 中,select 文件 > 项目设置
在之前的 Xcode 中,select 文件 > 工作区设置
将构建系统从 New Build System
更改为 Legacy Build System
--> 单击“完成”。
试试这些步骤:
- 删除你的Podfile.lock
- 删除您的 Podfile
- 构建项目
- 从 firebase 添加初始化代码
cd /ios
pod install
- 运行 项目
这对我有用。
问题出在您的 pod 文件部署目标 iOS 版本中,而不是您的项目部署目标 iOS 版本中,因此您需要为您的 [= 更改部署 iOS 版本27=] 以及任何高于 8.0 的版本都可以打开您的项目工作区并执行以下操作:
1- 单击 pods。
2- Select 每个项目和目标并单击构建设置。
3- 在部署部分下,将 iOS 部署目标版本更改为 8.0 以上的任何版本 (最好尝试相同的项目版本)。
4- 对 pods 中的每个其他项目重复此操作,然后 运行 应用程序。
详情见照片
您可以将 podfile 设置为自动将所有 podfile 的部署目标与您当前的项目部署目标相匹配,如下所示:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
end
end
end
如果有人从 React Native 问题来到这里,只需删除 /build 文件夹并输入 react-native run ios
对于遇到此问题的 cordova 开发人员
尝试设置
<preference name="deployment-target" value="8.0" />
在confix.xml
迭代 Tao-Nhan Nguyen 的答案,计算每个 pod 的原始值设置,仅当 不 大于 8.0 时才调整它...将以下内容添加到Pod 文件:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if Gem::Version.new('8.0') > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '8.0'
end
end
end
end
您可以删除每个 pod 的 pod 部署目标,而不是在 pod post install 中指定部署目标,这会导致部署目标继承自 Podfile
。
您可能需要 运行 pod install
才能产生效果。
platform :ios, '12.0'
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
我们可以将项目部署目标应用于所有pods目标。 通过将下面的代码块添加到 Podfile 的末尾来解决:
post_install do |installer|
fix_deployment_target(installer)
end
def fix_deployment_target(installer)
return if !installer
project = installer.pods_project
project_deployment_target = project.build_configurations.first.build_settings['IPHONEOS_DEPLOYMENT_TARGET']
puts "Make sure all pods deployment target is #{project_deployment_target.green}"
project.targets.each do |target|
puts " #{target.name}".blue
target.build_configurations.each do |config|
old_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET']
new_target = project_deployment_target
next if old_target == new_target
puts " #{config.name}: #{old_target.yellow} -> #{new_target.green}"
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = new_target
end
end
end
结果日志:
如果您来自 react-native
并遇到此错误,请执行此操作
- 打开
Podfile
(您的项目 > ios>Podfile) - 在 podfile 中评论 flipper 函数如下
#use_flipper!
#post_install do |installer|
#flipper_post_install(installer)
#end
- 在
IOS
文件夹内的终端中输入此命令pod install
是的,就是这样希望对你有用
如果有人在更新到最新的 React Native 时遇到问题,请尝试使用
更新您的 pod 文件 use_flipper!
post_install do |installer|
flipper_post_install(installer)
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
首先将部署更改为您选择的:如“11.0” 并将此步骤添加到您的 pod 文件的最后
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
end
end
end
对于Swift
如果您使用 Xcode 12 的 CocoaPods,那么您可能已经看到了这个错误:
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.
发生这种情况是因为对 iOS 8 的支持已被删除,但 pod 的最低部署目标是 iOS 8。
在解决此问题之前,您可以将以下内容添加到您的 Podfile 中:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
这将从您项目中的所有 pods 中删除部署目标,并允许它们继承已在 Podfile 顶部指定的 project/workspace 部署目标。
对于 React Native
删除 ./project-root/ios/build 文件夹并输入 react-native run ios
科尔多瓦
<preference name="deployment-target" value="8.0" />
在 Flutter 中对我有用的简单修复:
- 删除
Podfile
和Podfile.lock
- 运行 应用程序:这将创建一个新的
Podfile
。这可能仍然 失败并出现错误。 - 在新的
Podfile
中,取消注释并将第二行更改为platform :ios, '12.0'
(或您要定位的其他最低版本) - 运行 再次应用,现在没有错误
此解决方案适用于 Flutter。打开 {your_project_root_folder}/ios/Podfile
并用
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
platform :ios, '10.0'
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
end
end
end
您只需取消注释以下行
# platform :ios, '8.0'
或
# platform :ios, '9.0'
等...
然后在终端中打开 iOS 文件夹并传递这些命令:
% pod repo update
% pod install
如果有人在将 XCode 更新到 v13 后在 2021 年遇到这个问题,这里有一个对我有用的修复:
https://github.com/facebook/react-native/issues/31733#issuecomment-924016466
但是,这可能不适用于所有 react-native 版本,它适用于我的 v0.64。
我使用 Xcode 创建了虚拟 swift 文件,所以我自动收到了“桥接 Header”的请求
希望在未来的版本中解决这个问题。
我在构建 React Native 项目时遇到了同样的问题
cocoapods 版本更新对我有用(从 1.8.4 升级到 1.11.2)
为我工作:
rm ios/Podfile
flutter pub upgrade
flutter pub get
cd ios && pod update
flutter clean && flutter run
sudo arch -x86_64 gem install ffi
arch -x86_64 pod install
以上大部分对我不起作用。如果你四处挖掘,你会发现你不应该 运行 手动安装 pod。对我有用的是确保我的物理设备已在 xcode.
注册- 为 ios 打开 xcode 工作区。 select 您的设备(最有可能通过 USB 连接)并单击 运行。这将提示您让 xcode 注册您的设备。
- xcode 构建很可能会失败,这没关系 - 请参阅后续步骤
- 退出 Xcode!
- cd ios
- rm -fR Podfile Podfile.lock Pods
- 在 android studio 中选择有问题的设备,然后 c
这是 M1 MacBook 上的一个已知问题。 运行 flutter 升级,应该可以解决。
目前正在研究 M1 笔记本 12.0.0 颤振 2.10.0 飞镖 2.16.0
Xcode > Runner > Info deployment Target > IOS Deployment Target: 11 .
open terminal :
pod cache clean --all
.
pod update