You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将Swift Package导入SPM公共头文件下的Objective-C类

Objective-C Framework桥接Swift时"module not found"问题解决办法

针对你遇到的Objective-C Framework桥接Swift后,类无法导入模块报"module not found"的问题,按以下步骤排查修复:

1. 检查Framework的模块映射文件配置

Framework的.modulemap是模块识别的核心,确保它位于[你的Framework名]/Modules目录下,内容符合规范:

framework module [你的Framework名] {
    umbrella header "[你的Framework名].h"
    export *
    module * { export * }
}

其中umbrella header对应的主头文件,需要把所有要暴露给Swift的类、头文件都统一import进去,不要让桥接头文件单独引用零散头文件。

2. 修正桥接头文件的引用逻辑

  • 避免在桥接头文件中用#import <ModuleName/Header.h>这种模块式引用,改用基于include目录的相对路径引用,比如头文件在include根目录就写#include "TargetHeader.h",在子目录就写#include "SubFolder/TargetHeader.h"。
  • 确认Framework的Build Settings里,Swift Compiler - General -> Objective-C Bridging Header的路径正确,示例:$(SRCROOT)/[Framework名]/include/[桥接头文件名].h。

3. 配置Swift项目的Framework依赖

  • 在Swift项目的Build Phases -> Link Binary With Libraries中,添加你的Objective-C Framework。
  • 在Build Settings -> Framework Search Paths里,添加Framework所在的目录路径,设置为$(PROJECT_DIR)/[Framework所在相对路径],并勾选recursive选项。
  • 在Build Settings -> Import Paths中,添加Framework的include目录路径,比如$(PROJECT_DIR)/[Framework名]/include。

4. 清理缓存重新构建

  • 用Cmd + Shift + K清理项目缓存,先重新构建Objective-C Framework,再构建Swift项目。
  • 若仍有问题,手动删除Derived Data:打开Xcode偏好设置→Locations→Derived Data,点击箭头打开目录后删除对应项目的缓存文件夹。

内容的提问来源于stack exchange,提问作者Pranoti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 07:36:23