Xcode 使用 CocoaPods 时出现 12 个部署目标警告
Xcode 12 deployment target warnings when using 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.0.99
如何支持这个版本?
更新:要解决此问题,您只需将 Deployment Target
更新为 9.0
。这可以通过打开 .xcworkspace
文件,选择 Xcode 上的 Pods.xcodeproj
,并将 iOS Deployment Target
更新为 9.0
或更高版本来更新,如下图所示.
另一个简单的解决方法是将以下内容添加到终端上的 Podfile
和 运行 pod install
目录中。
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
上一页:除非导入支持文件,否则无法在 Xcode 12
上为 iOS 8.0
提供支持。要默认提供支持,您必须使用 Xcode 11
。最好检查 iOS 8
上使用您的应用程序的用户数量,并将支持的最低版本更新为 iOS 9
或更高版本。
这是您 cocoa pods 的目标的问题。
对我来说,答案是将这段代码放在你的 pod 文件的末尾:
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
它解决了我所有的问题,编译并归档了项目。
另一种方法是仅更改 pods 项目中的 IPHONEOS_DEPLOYMENT_TARGET
,如下图所示:
最好的问候。
这里有一个简短的工作解决方案!只需将下面的代码片段复制并粘贴到 Podfile 的末尾,然后 运行 pod install 命令。
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
在这种情况下,12.0 是 AppStore 提交的最低支持 iOS 版本。您可以根据项目要求进行更改。
发生这种情况是因为 iOS 8 的支持已在 Xcode 12 中删除,但最小deployment 违规 pod 的目标仍然是 iOS 8。这记录在 Xcode 12 release notes:
Deprecations
- Xcode now supports debugging apps and running tests on iOS devices running iOS 9.0 and above.
解决方法。您可以将以下内容附加到您的 Podfile
作为暂时的解决方法(然后像往常一样 运行 pod install
):
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
这将从使用 iOS 8 或更低版本的所有 pods 中删除部署目标设置,允许它们简单地继承您在 [=12] 顶部指定的项目部署目标=].例如:
platform :ios, '10.0'
我还需要添加
s.platform = :ios, "9.0"
我的 .podspec 文件,以及上述(或以下)答案中的 post_install 脚本。
注意:s.platform 是
s.platform = :ios
我正在使用 Flutter,所以我的步骤:
- 删除Podfile.lock 文件
- 更改为平台:ios、'10.0'
- 删除 ios 文件夹中的 Pods 文件夹
- 转到终端和 Pod 安装一切
Flutter 现在需要额外的一行才能在 2021 年末运行。
将下面更新的代码片段粘贴到您的 Podfile 和 运行 pod install 命令的末尾。
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
注意:如果您的 podfile 中有以下代码,请将其替换为上面的代码。
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end
我在 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
如何支持这个版本?
更新:要解决此问题,您只需将 Deployment Target
更新为 9.0
。这可以通过打开 .xcworkspace
文件,选择 Xcode 上的 Pods.xcodeproj
,并将 iOS Deployment Target
更新为 9.0
或更高版本来更新,如下图所示.
另一个简单的解决方法是将以下内容添加到终端上的 Podfile
和 运行 pod install
目录中。
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
上一页:除非导入支持文件,否则无法在 Xcode 12
上为 iOS 8.0
提供支持。要默认提供支持,您必须使用 Xcode 11
。最好检查 iOS 8
上使用您的应用程序的用户数量,并将支持的最低版本更新为 iOS 9
或更高版本。
这是您 cocoa pods 的目标的问题。 对我来说,答案是将这段代码放在你的 pod 文件的末尾:
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
它解决了我所有的问题,编译并归档了项目。
另一种方法是仅更改 pods 项目中的 IPHONEOS_DEPLOYMENT_TARGET
,如下图所示:
这里有一个简短的工作解决方案!只需将下面的代码片段复制并粘贴到 Podfile 的末尾,然后 运行 pod install 命令。
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
在这种情况下,12.0 是 AppStore 提交的最低支持 iOS 版本。您可以根据项目要求进行更改。
发生这种情况是因为 iOS 8 的支持已在 Xcode 12 中删除,但最小deployment 违规 pod 的目标仍然是 iOS 8。这记录在 Xcode 12 release notes:
Deprecations
- Xcode now supports debugging apps and running tests on iOS devices running iOS 9.0 and above.
解决方法。您可以将以下内容附加到您的 Podfile
作为暂时的解决方法(然后像往常一样 运行 pod install
):
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
这将从使用 iOS 8 或更低版本的所有 pods 中删除部署目标设置,允许它们简单地继承您在 [=12] 顶部指定的项目部署目标=].例如:
platform :ios, '10.0'
我还需要添加
s.platform = :ios, "9.0"
我的 .podspec 文件,以及上述(或以下)答案中的 post_install 脚本。
注意:s.platform 是
s.platform = :ios
我正在使用 Flutter,所以我的步骤:
- 删除Podfile.lock 文件
- 更改为平台:ios、'10.0'
- 删除 ios 文件夹中的 Pods 文件夹
- 转到终端和 Pod 安装一切
Flutter 现在需要额外的一行才能在 2021 年末运行。
将下面更新的代码片段粘贴到您的 Podfile 和 运行 pod install 命令的末尾。
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
注意:如果您的 podfile 中有以下代码,请将其替换为上面的代码。
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
end
end