如何在iOS项目中添加自定义编译的framework?导入提示无模块怎么办
自定义framework导入后"No module named..."报错排查步骤
- 确认你拖拽
customFramework.xcodeproj到主项目后,已经把该framework设为主项目的依赖目标:进入主项目Targets -> 项目名称 -> Build Phases -> Dependencies,点击加号把customFramework的目标添加进去,确保编译主项目时会优先编译自定义framework。 - 检查自定义framework的模块暴露配置:打开
customFramework.xcodeproj的目标设置,进入Build Settings -> Packaging,确认Defines Module设置为YES,否则Xcode不会生成对应的Swift/ObjC模块文件,主项目无法识别导入。 - 确认framework的架构支持匹配:检查自定义framework的
Build Settings -> Architectures配置,是否和主项目的目标架构(比如真机的arm64、模拟器的x86_64/arm64)保持一致,避免架构不兼容导致模块无法加载识别。 - 检查主项目的框架搜索路径配置:进入主项目
Targets -> 项目名称 -> Build Settings -> Search Paths -> Framework Search Paths,确认已经自动添加了customFramework的编译输出路径,如果没有的话手动添加对应路径,建议勾选Recursive选项。 - 确认自定义framework的访问权限配置:你需要在framework中将对外暴露的类、方法、属性的访问级别设置为
public或者open(Swift),或者在umbrella头文件中导入需要对外暴露的ObjC头文件,否则即使模块能被找到,内部符号也无法被主项目访问,严重时也会触发模块识别失败。 - 最后执行一次清空缓存重新编译:按
Command + Shift + K清空Xcode缓存,再按Command + B重新编译整个项目,很多时候Xcode缓存会导致模块识别滞后。
内容的提问来源于stack exchange,提问作者Zulqarnain Naveed
相关产品推荐
相关产品推荐

