我在Xcode 10.1中收到以下警告消息。
iOS Simulator部署目标设置为7.0,但是此平台支持的部署目标版本范围是8.0到12.1。
我的模拟器OS在12.1 Xcode 10.1中
然后我更新了pod文件。
我的部署目标是9.0
在我的目标
Xcode
并有File
左上方旁边的苹果图标,然后打开Workspace Settings
并更改构建系统to`遗留构建System`。如果您还没有尝试过,那么stackoverflow.com/a/52552878/2323806
Answers:
您可以将podfile设置为自动将所有podfile的部署目标与当前项目部署目标相匹配,如下所示:
post_install do |pi|
pi.pods_project.targets.each do |t|
t.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
end
end
end
config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
迭代来自Tao-Nhan Nguyen的答案,考虑为每个Pod设置的原始值,仅在不大于8.0时才进行调整...将以下内容添加到Podfile:
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 post安装中指定部署目标,这会导致从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
如果您将CocoaPods与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.
发生这种情况的原因是,已放弃了对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
这将从项目中的所有Pod中删除部署目标,并允许他们继承在Podfile顶部指定的项目/工作区部署目标。
installer.pods_project&.targets&.each do |target|
如果您已incremental_installation
设置为true。
如果有人来自本地反应问题,只需删除/ build文件夹并输入 react-native run ios
/build
同事,这个文件夹在哪里?
./project-root/ios/build
cd ios && pod install && cd ..
了就可以再次使用。
我们可以将项目部署目标应用于所有pod目标。通过在您的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
结果日志: