我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
我目前在Swift编码,我有一个错误:
没有这样的模块
但我不明白,因为这个模块在我的项目中,在“链接框架和库”和“嵌入式二进制文件”中声明。
框架是在Objective-C中,所以我为它写了一个桥标头。
请问,如何让Xcode识别框架?
当前回答
如果你做了以上所有的事情,仍然没有工作,然后尝试在你的目标构建设置的框架搜索路径中添加$(inherited)。
其他回答
几天前我也遇到了同样的错误。下面是我解决这个问题的方法:
错误是“模块未找到”
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)
这是所有。
假设框架真的在那里,在道路上,等等……删除~/Library/Developer/Xcode/DerivedData/ModuleCache目录(清理项目并删除项目特定的派生数据)。
在执行标准清理时,不会重新构建ModuleCache目录。
如果你使用迦太基,建筑设置中的框架通常是不变的
$ (PROJECT_DIR) /迦太基/构建/ iOS
如果你运行carthage update—platform ios—no- Build(为了节省时间),Build文件夹中的文件将不会被重新创建,那么这些模块将无法用于XCode。
以我为例,我运行了carthage update平台ios,然后我的问题就解决了。
至于xCode 12和模拟器,
当你导航到Pods时,错误可能会消失。项目导航器中的Xcodeproj, 在“排除架构”下的构建设置中,对于每个调试和发布,选择值为arm64的“任何iOS模拟器SDK”。
此错误也可能由框架缺少模块映射引起。如果您试图导入的框架是您自己的框架,请检查框架本身的编译器警告。在我的情况下,我的框架正在构建和到位,但有一个构建警告:
警告:没有为目标'MyFramework'找到伞头,模块映射将不会生成
通过解决这个警告(与框架头不匹配模块名有关),我能够导入框架。