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. Socket传输大文件(发送与接收)

    下载 Client using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  2. SIAMATIC S7-1200 中通过 Modbus RTU 如何读取地址范围 9999 到 65535 的输入字

    原文地址 说明 除了需要 STEP 7 >= V13 SP1 (TIA Portal) 的软件,还需要 S7-1200 CPU 固件版本 >= V4 (文章编号: 6ES721x-1xx4 ...

  3. Visual c++6.0如何创建工程项目

    首先,打开电脑里安装的visual C++ 6.0 ,进入其选择的主界面,如果兼容性不对,先调整一下电脑与软件的兼容性. 进入主界面之后,点击左上角的文件,然后点击新建,可以创建新的文件. 打开后弹出 ...

  4. Vue.js面试题

    一.什么是MVVM? MVVM是Model-View-ViewModel的缩写.MVVM是一种设计思想.Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑:View 代表UI ...

  5. Myeclipse项目出现红叉解决方案

    1.右键点击你的项目.选中properties 2.选中MyEclipse下的Project Facets里面的java 此时的版本号为1.5,修改 3.选中MyEclipse下的Project Fa ...

  6. SciPy 介绍

    章节 SciPy 介绍 SciPy 安装 SciPy 基础功能 SciPy 特殊函数 SciPy k均值聚类 SciPy 常量 SciPy fftpack(傅里叶变换) SciPy 积分 SciPy ...

  7. 配置uboot指定nfs挂载根文件系统

    背景: 文件系统的调试也建议在 网络中进行. 概念: NFS是Network File System的缩写及网络文件系统. 要功能是通过局域网络让不同的主机系统之间可以共享文件或目录. NFS系统和W ...

  8. SChema中group指示器的使用

    <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XMLSpy v2011 (h ...

  9. (转)如何判断VPS是基于哪种虚拟技术?Xen、OpenVZ、Xen HVM、KVM还是VMware

    对于VPS新手来说,怕被无良的奸商给忽悠,下的Xen的却给的OpenVZ的,如何来判断自己买的VPS是那种虚拟技术的,下面VPS侦探整理一些常见的方法. 1.通过系统上的相关目录或文件判断 执行:ls ...

  10. pytesseract 识别率低提升方法

    pytesseract 识别率低提升方法 一.跟换识别语言包 下载地址https://github.com/tesseract-ocr/tessdata 二.修改图片的灰度 from PIL impo ...