Xcode 15添加Framework提示“No Module Found”的解决方法
解决Xcode 15拖拽添加Framework后“No Module Found”的问题
以下是针对Xcode 15特性调整的排查和解决步骤,能覆盖常规方法无效的大部分场景:
一、先确认Framework本身的有效性
- 检查架构兼容性:用
lipo -info /path/to/your.framework/yourFramework命令查看,确保包含当前开发所需架构(比如iOS的arm64、Mac的x86_64/arm64) - 核对模块名:打开Framework包内的
Info.plist,确认CFBundleName和你导入时写的模块名完全一致(大小写敏感) - 自定义Framework需确认:编译时
Build Settings里的Defines Module已设为YES
二、修正Xcode 15的Framework添加流程
Xcode 15对拖拽添加的处理逻辑有变化,别沿用旧步骤:
- 拖拽Framework到项目根目录时,取消勾选“Copy items if needed”,先仅做引用
- 进入项目
Build Phases:- 在
Link Binary With Libraries中点击+号,选中该Framework添加 - 在
Embed Frameworks中同样添加该Framework,闭源第三方选Embed & Sign,自行编译的选Embed Without Signing
- 在
- 到
Build Settings的Framework Search Paths,添加Framework所在的相对路径(比如$(SRCROOT)/Frameworks),并勾选Recursive
三、检查模块映射文件(自定义Framework专属)
如果是自行编译的Framework,需确认:
- Framework包内的
Headers目录下存在.modulemap文件,内容格式正确:framework module YourFrameworkName { umbrella header "YourFrameworkName.h" export * module * { export * } } - 若没有
.modulemap,重新编译时确保Build Settings里的Module Map File路径正确指向生成文件
四、彻底清理缓存(比常规方法更彻底)
- 完全关闭Xcode,删除项目目录下的
xcuserdata文件夹 - 打开终端执行:
xcodebuild clean -project YourProject.xcodeproj -scheme YourScheme rm -rf ~/Library/Developer/Xcode/DerivedData - 重启Mac后再重新打开项目构建
五、尝试切换构建系统
Xcode 15默认启用新构建系统,部分旧Framework可能存在兼容问题:
- 打开项目文件(
.xcodeproj或.xcworkspace),点击项目根节点进入Info标签页 - 在
Build System选项中切换为Legacy Build System,重新构建项目
内容的提问来源于stack exchange,提问作者Anas Lokhandwala
相关产品推荐
相关产品推荐

