https://www.jianshu.com/p/96d868dcd69c

2017.07.07 16:23* 字数 295 阅读 5218评论 2喜欢 4

首先,在OC项目的Podfile文件中添加如下

use_frameworks!

pod 'PromiseKit', '~> 4.2.2' #任意一个swift库

然后pod install

接着编译command+r

会有报错。

先不管报错,xcode提示修改项目配置,主要是修改

ALWAYS_SEARCH_USER_PATHS = NO;

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

如果没有提示,请自行到project.pbxproj文件中找到ALWAYS_SEARCH_USER_PATHS改为NO;

在其上面添加一行ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;

然后就是修改报错

以前没有加入use_frameworks!前OC调用Pod引入的第三方库时,是这样调用的#import <YYKit.h>,现在全部给它加上frame前缀#import <YYKit/YYKit.h>

记住不要按照xcode的提示去修改,它提示你把<>改为"",这样就真的找不到头文件了。

这是一个艰苦的过程,我足足改了100+个文件,还好有批量替换☺

如果你也和我一样用到mattt大神的Ono,或者其他比较古老的第三方库,或许你也碰到这样的问题(如果没看到,clean后再看)

引用Ono.h地方

是的,已经添加frame前缀Ono了,还是报错;

一共报了2处错误,第一个就是它,一开始以为是frame前缀拼错了,用代码提示来写也不对。

跳转到Ono.h文件里边也没发现报错

Ono.h.png

想着处理第二个问题再说咯,这时发现了问题的端倪

第二个问题才是重点! ONOXMLDocument.h.png

问题描述是:Include of non-modular header insider framework module 'xxxx'

解决方案是在Build Setting中修改Allow Non-modular includes in Framework Modules 为YES

参考资料:include of non-modular header inside XXXX

OC项目引入使用swift编写的三方库后,报错

2018年01月15日 15:20:38 jinrui_w 阅读数:1488

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jinrui_w/article/details/79064975

OC项目引入使用swift编写的三方库后,报错

  • 错误描述:The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This setting can be set in the build settings editor.
  • 解决办法
    • 选中Pods项目
    • TARGETS选择对应的使用swift编写的三方库
    • 切换到Build Setting选项
    • 在搜索框输入swift language搜索
    • 将Swift Language Version中的Unspecified改为对应的Swift版本(Swift 3.2)
    • 重新build项目,这是可能会报一些Swift的语法错误,修改一下就OK了。

OC项目Cocoapods导入Swift库出错解决办法

https://blog.csdn.net/niumanxx/article/details/80481426

2018年05月28日 14:24:52 niumanxx 阅读数:1088

版权声明:未经博主允许不得转载。 https://blog.csdn.net/niumanxx/article/details/80481426

由于本人在开发过程中主要用的是OC语言,所以pod的都是OC库,Podfile里又没加use_frameworks!

所以一直都是.a类型的。后来因为需求需要用到一个只有swift版本的库,就使用use_frameworks!将所有.a库变成了.framework。然后信心满满地运行工程,结果GG。

最后归纳出几个需要注意的点:

1.将用到的库提示找不到的,从#import <xxx.h>改为#import "xxx.h";

2.找到Target->Build Settings->Other Linker Flags,把Pod进来的库,

比如:改成,不是Pod进来的不用改;

3.点击pods Target如图:,,再点击Build Setting,如图:

搜索Swift Language Version,将版本设置为Swift库能支持的最高版本,如图:

最新文章

  1. [C#] 多线程总结(结合进度条)
  2. SQL表关联赋值、系统表、表数据删除
  3. IOS中如何获取手机的当前IP
  4. HTML5每日一练之OL列表的改良
  5. idea编译器中maven项目获取路径的方法
  6. FFPLAY的原理(四)
  7. 时间插件datepicker(jQuery-UI,bootstrap)和jquery-steps的冲突解决。。。
  8. java UTC时间格式化
  9. ECMA Script 6_异步编程之 Promise
  10. 前端框架本质之探究——以Vue.js为例
  11. Spring MVC 复习笔记05
  12. Volley Get网络请求
  13. BZOJ4764弹飞大爷——LCT
  14. Elasticsearch之中文分词器插件es-ik的自定义词库
  15. InstallShield2015创建安装包
  16. SpringBoot 整合使用dubbo
  17. Docker网络解决方案-Flannel(转)
  18. 【C#】解析C#中JSON.NET的使用
  19. C#常用数据类型间的转换
  20. httpclient http状态管理

热门文章

  1. loadrunner-11安装+破解+汉化
  2. Java设计模式之适配器模式(Adapter)
  3. Codeforces 591 B:Rebranding
  4. springboot启动不能加载数据库驱动Failed to determine a suitable driver class
  5. sizeof strlen 求char*字符串的长度
  6. python重要函数eval
  7. 吴裕雄--天生自然java开发常用类库学习笔记:Set接口
  8. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 辅助类:响应式实用工具
  9. 解决物理机U盘安装Kali Linux2018.1,光驱无法加载问题
  10. @Resource 和@Autowired区别