我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
当前回答
几天前我也遇到了同样的错误。下面是我解决这个问题的方法:
错误是“模块未找到”
Create Podfile in your root project directory Install cocoapods (a dependency manager for Swift and iOS projects) Run pod install Go to Project Build Settings: Find Objective-c bridging Header under Swift compiler - Code Generation (If you don't find Swift compiler here, probably add a new Swift file to the project) Drag and drop the library header file from left side to bridging header (see image attached) Create a new bridging header file: e.g TestProject-Bridging-Header.h and put under Swift Compiler → Objective-C Generated Interface Header Name (ref, see the image above) In TestProject-Bridging-Header.h file, write #import "Mixpanel/Mixpanel.h" In your Swift file the code should be: Import Mixpanel (i.e name of library)
这是所有。
其他回答
我不太确定为什么Martin R在评论中对这个问题的回答被如此忽视:
确保您尝试简单地跳过导入框架,因为它已经与桥接头一起添加了。
希望这能有所帮助
假设框架真的在那里,在道路上,等等……删除~/Library/Developer/Xcode/DerivedData/ModuleCache目录(清理项目并删除项目特定的派生数据)。
在执行标准清理时,不会重新构建ModuleCache目录。
在我的例子中,应用IPHONEOS_DEPLOYMENT_TARGET被设置为9.3,而在我新创建的框架中,它被设置为10.2
隐式依赖解析器忽略了我的新框架,因为目标平台的要求高于应用程序的要求。
在调整框架iOS部署目标以匹配我的应用程序部署目标后,框架编译并链接成功。
转到项目所在的文件夹,删除导致错误的插件。对我来说,我删除了导致错误的谷歌移动广告Sdk文件夹,问题已经修复。把它和豆荚放在一起就足够了。
在目标的构建设置中,将“框架搜索路径”设置为$(inherited)和递归。 [