升级Flutter 3.22.0稳定版后Xcode构建失败,命令行构建正常
Flutter 3.22.0 Xcode构建失败:No such module 'desktop_drop' 问题解决
问题描述
- 升级至
Flutter Channel stable, 3.22.0后,flutter build macos命令行构建正常,但Xcode打开项目构建时报错:
/Users/fractale/CommercialProjects/fcp_library_cleaner/macos/Flutter/GeneratedPluginRegistrant.swift:8:8 No such module 'desktop_drop'
- 执行
pod install/pod update后,发现安装的desktop_drop版本为0.0.1,但项目pubspec.yaml中声明的是desktop_drop: ^0.4.4;同时CocoaPods输出多个配置警告,提示项目自定义了xcconfig文件,未集成Pods的配置。
解决方案
第一步:修复CocoaPods配置警告(核心前提)
Xcode找不到Pod模块的核心原因是配置未正确集成,先处理CocoaPods警告:
- 打开Xcode,选择
Runnertarget → 切换到Build Settings标签 → 搜索Configurations - 针对
Debug、Release、Profile三种配置,二选一操作:- 直接将
Base Configuration设置为Pods/Target Support Files/Pods-Runner/Pods-Runner.xxx.xcconfig(xxx替换为对应配置类型:Debug/Release/Profile) - 在自定义的
AppInfo.xcconfig文件末尾添加一行:
同样将#include "../Pods/Target Support Files/Pods-Runner/Pods-Runner.xxx.xcconfig"xxx替换为对应配置类型
- 直接将
- 保存配置后关闭Xcode。
第二步:强制同步Flutter依赖与Pod版本
Pod安装的版本与pubspec声明不一致,需要重新生成正确的Pod配置:
- 在项目根目录执行:
flutter clean - 删除macos目录下的Pod锁定文件和Pods文件夹:
rm -rf macos/Podfile.lock macos/Pods - 重新同步依赖并更新Pod:
flutter pub get cd macos pod install --repo-update--repo-update会强制更新CocoaPods仓库,确保拉取到正确的desktop_drop版本。
第三步:验证Xcode构建
- 重新打开Xcode中的
macos/Runner.xcworkspace(注意必须打开xcworkspace,而非xcodeproj) - 清理Xcode构建缓存:
Product→Clean Build Folder(快捷键Cmd+Shift+K) - 重新构建项目,检查报错是否消失。
额外排查点
如果以上步骤无效,可检查:
- 确认
pubspec.yaml中desktop_drop: ^0.4.4未被注释,执行flutter pub get后,pubspec.lock中desktop_drop的版本是否为0.4.4系列 - 检查
macos/Podfile是否有手动指定desktop_drop版本的代码,如有则删除后重新执行pod install - 确认Xcode的
Runnertarget的Framework Search Paths包含$(inherited)和$(PROJECT_DIR)/Pods/desktop_drop/macos(修复配置后通常会自动添加)
内容的提问来源于stack exchange,提问作者Fractale
相关产品推荐
相关产品推荐

