iOS:No such module

No such module 指的是找不到该模块,本质问题是模块化导入。

出现这个报错分为几种情况:

一、主工程导入主工程中文文件

这种情况一般不会报"No such module ",更多的是"No such file"之类的报错。因为这种情况下是 OC 混编中,swift 通过 bridge-header.h 文件来引用 OC 中的文件。

所以,直接在 birdge-header.h 中添加 #import "xxx.h" 之后,就可以在 swift 文件中直接使用 OC 类。

二、主工程 import 私有库

这种情况下,一般是使用 cocoapods 导入第三方库时会出现。

1. 版本问题

有的 pod 库支持的 swift 版本比较低,这个时候只需要把主工程中的 swift 版本调低即可,但是这种情况在 swift4和 swift5 发布后基本很少出现了,因为 swift 相对而言已经很稳定了。

2. 私有库配置问题(一般情况下pod会自动配置umbrella.h)

一般而言,cocoapods 会自动帮我们配置.

三、Framework/SDK

这种情况在实际开发中很少遇到,基本只有制作 SDK包,或者自制 framework 后导入到工程中才会遇见,而官方文档中的第二种情况就是针对这种情况的。具体配置参照官方文档:Importing Objective-C into Swift

四、私有库 import 私有库

保证配置都没问题的基础上(其实配置大概率不会有啥问题,cocopods帮我们屏蔽了大部分配置),一定要加上 dependency。

比如 podA 中的 swift 文件使用到了 podB 中的代码,那么在 podA 中的 spec 文件中添加:s.dependency 'podB'

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • #日签# 央吉玛 上一次我向她祈祷 用七个白海螺和一支骨笛供养 我从她那里得到了 一根荒废的舌头作为交换 至今 我...
    子果如阅读 205评论 0 0
  • 我不是一具,好的尸体 记忆稀薄时,才继续保持沉默 多数时候,我躺在雷雨中大声喊叫: 即便双胞胎,也从陌生开始 我认...
    希臘智術史阅读 627评论 3 8
  • 花,只有依偎在枝上 才得以唱响生命之歌 昨夜风雨 地上堆积之物仿佛隔世 人,只要寻得光环 就可乐得开怀 今日碰壁 ...
    所爱如星辰手可摘星辰阅读 222评论 0 1