Flutter 2.10+Fastlane上传App遇ERROR ITMS-90725问题求助
解决Flutter 2.10 + Xcode 14.2上传App Store时的ITMS-90725报错
核心问题分析
你遇到的问题本质是:尽管已升级Xcode 14.2(自带iOS 16.2 SDK),但Flutter 2.10默认编译逻辑仍可能绑定旧的iOS 15.5 SDK路径,导致上传时被App Store判定不符合版本要求。完全可以不升级Flutter版本解决此问题,具体操作如下:
分步解决方法
1. 强制指定iOS SDK版本编译
执行Flutter打包命令时,通过环境变量直接指定使用当前Xcode默认的iOS SDK:
SDKROOT=$(xcrun --sdk iphoneos --show-sdk-path) flutter build ipa --release
这条命令会覆盖Flutter内置的旧SDK路径,强制使用Xcode 14.2中的iOS 16.2 SDK编译。
2. 检查并修正Fastlane配置
如果使用Fastlane的gym/build_app动作,确保配置中没有硬编码旧SDK版本:
打开Fastfile,若存在类似xcargs: "-sdk iphoneos15.5"的配置,替换为自动获取当前SDK版本的写法:
lane :release do build_app( scheme: "YourAppScheme", export_method: "app-store", xcargs: "-sdk #{`xcrun --sdk iphoneos --show-sdk-version`.strip}" ) upload_to_app_store end
3. 验证编译产物的SDK版本
打包完成后,验证IPA是否使用了正确的SDK,避免无效操作:
# 解压IPA文件 unzip YourApp.ipa # 查看Info.plist中的SDK版本 plutil -p Payload/YourApp.app/Info.plist | grep DTSDKName
若输出为"DTSDKName" => "iphoneos16.2"(或16.1及以上版本),说明编译已使用正确SDK。
4. 确认Xcode命令行工具版本
确保系统默认的Xcode命令行工具为14.2版本:
xcode-select -s /Applications/Xcode.app # 验证版本 xcodebuild -version
输出应显示Xcode 14.2、Build version 14C18及对应的iOS 16.2 SDK版本。
关键原理
Flutter 2.10编译iOS应用时会缓存旧的SDK路径,即使升级Xcode也可能沿用旧路径。通过指定SDKROOT环境变量或修改Fastlane配置,可强制Flutter调用新Xcode中的SDK,无需升级Flutter本身。
内容的提问来源于stack exchange,提问作者alonsolee
相关产品推荐
相关产品推荐

