最近在打包发布App的时候频繁出现以下警告:
ITMS-90725: SDK version issue - This app was built with the iOS 16.1 SDK. Starting April 29, 2024, all iOS and iPadOS apps must be built with the iOS 17 SDK or later, included in Xcode 15 or later, in order to be uploaded to App Store Connect or submitted for distribution.
意思是:苹果公司要求从2024年4月29日开始,所有在App Store Connect上上传或提交分发的iOS和iPadOS应用都必须使用iOS 17 SDK或更高版本来构建,这个SDK包含在Xcode 15或更高版本中。
为了解决这个问题,我们需要更新Xcode版本到15或更高版本,并且使用iOS 17 SDK来重新编译应用。
更新前我得macOS是12,Xcode版本是14,因此为了能够正常发布App,开始进行升级,期间出现了一系列问题,在此记录一下。
一.更新macOS和Xcode
Xcode 15是内置了相应的IOS 17 SDK的,但是升级Xcode前首先要升级macOS。
- 升级MacOS
我从12.6版本升级到14.4.1大概用了两个多小时,不断的下载和重启,这部分自行解决 - 升级Xcode
MacOS升级到14.4.1以后,Xcode无法使用,在App Store中搜索找到Xcode进行升级,大概需要20分钟左右。
附带的 IOS simulator也会进行相应升级,需要7.2个G。正常下载安装更新。
二.启动IOS
CocoaPods not installed or not in valid state
- 首先运行一下命令 gem list查找一下自己是否安装了cocoaPods,查看列表中是否有cocoapods相关配置。没有的话首先请基础安装,这个不需要介绍。
就是这个东西
cocoapods (1.12.0) cocoapods-core (1.12.0) cocoapods-deintegrate (1.0.5) cocoapods-downloader (1.6.3) cocoapods-plugins (1.0.0) cocoapods-search (1.0.1) cocoapods-trunk (1.6.0) cocoapods-try (1.2.0)
- 安装了的话下一步 ,因为我们升级了Xcode,可能是因为不兼容报的错所以再运行一下sudo gem update xcodeproj命令去升级一下我们的cocoaPods。
- 升级完成以后,请关闭VScode和Xcode重新启动
SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ lib/arc/libarclite_iphonesimulator.a'; try increasing the minimum deployment target
- 这个错误说是更新完成以后,在/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/ lib目录下少了必要的包,这个是更新出现的bug。
- 打开终端 open /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib 发现确实没有arc文件件
- 打开https://github.com/JacyFox/Xcode15_arc下载arc压缩包
- 解压后放到lib下的目录,关闭Xcode然后重新启动正常
三.启动MacOS项目
The macOS deployment target 'MACOSX_DEPLOYMENT_TARGET' is set to 10.11, but the range of supported deployment target versions is 10.13 to 14.4.99. (in target 'path_provider_foundation' from project 'Pods')
- 打开项目目录 macos/Pods/Pods.xcodeproj/project.pbxproj
- 全局搜索“MACOSX_DEPLOYMENT_TARGET = 10.11”
- 全局替换“MACOSX_DEPLOYMENT_TARGET = 10.13”
- 重启解决
DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead (in target 'Flutter Assemble' from project 'Runner')
- 打开Macos下的Podfile文件
- 加入以下代码
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_macos_build_settings(target)
// 这里是新增的代码
target.build_configurations.each do |config|
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")
File.open(xcconfig_path, "w") { |file| file << xcconfig_mod }
end
end
end
- 解决
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。