今天swift项目,cocoapods 导入三方库pod 'ReactiveCocoa', '~> 5.0.4'
遇到了些小状况
导入操作如下:
pod install
-
设置
User Header Search Paths
为${PODS_ROOT}
并且为递归搜索recursive
由于Xcode版本为9, 使用的swift
版本为Swift 4.0
, 所以报了一大堆错误, 需要将 版本将为 Swift 3.2
-
Project ->Swift Language Version 设置为
Swift 3.2
Pods下
ReactiveCocoa
和ReactiveSwift
和Result
下的 ->Swift Language Version 都设置为Swift 3.2
再build,显示Success,nice~
然鹅,燃鹅,
只能代码提示 ReactiveSwift
, 我的ReactiveCocoa
呢!???
- 没办法,强行键入
ReactiveCocoa
然后 build
- 喵喵喵?
Umbrella header 'ReactiveCocoa.h' not found
看看三方库中有没有此文件
额,有此文件,为啥会找不到??? Google之,Stack Overflow之,找到了类似问题 StackOverflow 传送门
按照以下流程尝试解决:
- Pods -> ReactiveCocoa -> Buiding Phases -> Headers 确认
ReactiveCocoa.h
是否是Public- 'Shift + Option + Command' clean 之后 再次Build
- 将工程 Enable Modules (C and Objective-C)设置为Yes
- Project中将Always Search User Paths设置为No
- DEFINES_MODULE 设置为 Yes
- CLANG_ENABLE_MODULES 设置为 Yes
恩。。。以上全没有效果
解决方案:
经过仔细观察,发现原来之前报错的文件是 这个文件module.modulemap
, 而且是在 ReactiveCocoa
目录下的一个.modulemap
文件,在Finder里面打开
- 尝试注释module.modulemap文件内容,之后 再 build,世界清静了,(但是 pod install 之前要把这个注释改回来,执行完 pod install 之后再注释,适合走投无路的下下策)
- 将路径补全,再build,世界和平了(推荐该方法)