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库能支持的最高版本,如图:

OC项目加入swift第三方库遇到的坑的更多相关文章

  1. iOS OC中桥接swift第三方库

    swift中有一些比较好的框架,比如绘图框架charts,最近项目中刚好用到,通过Pod的方式直接导入,xcode会自动生成charts-swift.h的文件,然后在需要导入的地方import < ...

  2. Objective-C 和 Swift 第三方库使用

    https://www.jianshu.com/p/6be32a047ca7 原文地址: Objective-C 和 Swift 第三方库使用 注1:文章写于2016年9月,(swift 3.0.Xc ...

  3. swift调用oc语言文件,第三方库文件或者自己创建的oc文件——简书作者

    Swift是怎样调用OC的第三方库的呢?请看下面详情: 情况一: 1.首先打开Xcode,iOS->Application->Single View Application, 选Next. ...

  4. 使用CocoaPod导入Swift第三方库报错

    在使用cocoapod导入swift第三方时出现这样的错误: [!] Pods written in Swift can only be integrated as frameworks; add ` ...

  5. vue-cli创建的项目中引入第三方库报错 'caller', 'calle', and 'arguments' properties may not be...

    http://blog.csdn.net/sophie_u/article/details/76223978 以在vue中引入mui第三方库为例: 虽然针对vue,有单独的vue-mui库可以使用,但 ...

  6. pyinstaller 如何引入Pycharm项目中的第三方库

    使用Pycharm作为IDE的项目,引用的第三方库一般放在项目所在目录的venv\Lib\site-packages下,因此可使用以下语句引入第三方库 pyinstaller -p venv\Lib\ ...

  7. vue-cli创建的项目中引入第三方库报错'caller', 'calle', and 'arguments' properties may not be...

    本文链接:https://blog.csdn.net/Sophie_U/article/details/76223978 问题: 在vue的main.js中引入mui.min.js时,报错. 如上,单 ...

  8. swift 第三方库迁移错误解决“Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choo

    先看看错误提示 这里Alamofire库报错,原因打开工程会Xcode会提示你覆盖到最新的3.0版本.但是仍然有些框架会出现一些问题 解决办法: 选择Pods - ReactiveCocoa - Sw ...

  9. 自己项目使用了ARC,项目中使用第三方库继续引用ARC

    Objective-C引入ARC(Automatic Reference Counting)后,我们经常会面对这样一种困境:自己的项目使用了ARC,却发现要使用的第三方类库是non-ARC的:又或者自 ...

随机推荐

  1. 一、Linux&配置,依赖安装&Tomcat,Mysql,jdk安装

    基础知识: 1 OS Operation System 作用:控制硬件,服务软件 2 VMware虚拟机: 虚拟出一台计算机环境 配置两个虚拟网卡,适配器里查看 3 在虚拟机上安装操作系统Linux ...

  2. Jquery所有Dom操作汇总

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. SQL注入的原理及分析

    注入攻击的本质:将用户输入的数据当做代码执行. 有2个限制条件: 1.用户能够控制输入. 2.原本程序要执行的代码,拼接了用户输入的数据后进行执行. 定义:用户输入的数据被当做SQL语句执行. 以下面 ...

  4. springboot2.1mysql驱动类弃用

    Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdb ...

  5. php hash算法实现memcached分布式

    一.概述Memcached和mysql一样,是一款客户端/服务器端(C/S)系统管理软件,有IP.端口,一旦启动,服务器就一直处于可用状态.Mysql是通过SQL语句管理“磁盘中”的文件,Memcac ...

  6. brew services start redis 无法使用问题排查

    起因 Mac上使用brew services start --all指令同时启动多个服务显示成功 但是,连接四个服务所在端口均无响应. 仔细核对过brew指令启动服务使用的路径.配置文件路径均无问题. ...

  7. word2010文档如何隐藏右侧灰色空白不可编辑区域

    word2010文档如何隐藏右侧灰色空白不可编辑区域, (word2007也是差不多的操作) 两种方法: 1.点击图中的“最终状态”按钮: 2.点击图中的”以嵌入方式显示所有修订“的按钮:

  8. 变相降价的iPhone,能挽救苹果在中国的命运吗?

    人无千日好,花无百样红.当年iPhone的横空出世不仅开辟了智能手机时代,还间接导致了诺基亚.黑莓等手机品牌的没落.十余年来,苹果凭借iPhone活得风光无限,并成为全球首个市值超万亿美元的公司.但进 ...

  9. C++面试常见问题——13结构体与共用体的sizeof

    结构体与共用体的sizeof 结构体的sizeof 结构体变量占用的内存空间大小通常是其基本类型的大小,但是由例外(字节对齐机制) struct S1{ char c[5]; int a; doubl ...

  10. idea-plugin-easycode

    1.背景 在练习使用mybatis-generator时候,无意间看到博文esaycode(代码神器),https://www.jianshu.com/p/e4192d7c6844,试验完,感觉这个工 ...