美文网首页iOS常见问题记录
2019-09-04 OC项目中用cocoapods导入Swi

2019-09-04 OC项目中用cocoapods导入Swi

作者: 926efe3197b3 | 来源:发表于2019-12-01 14:42 被阅读0次

网上看了很多文章,但是除了基本配置外,其他的一律没解决我的问题,经过一天的摸索,终于在下班时分摸索成功了。下面给大家说一下我踩的坑以及最后成功的方法。

cocoapods配置

咱们先从cocoapods说起。因为 Apple 不允许开发者构建内含 Swift 代码的静态库,所以要往 OC 项目中集成第三方 Swift 代码的时候就只能通过动态框架( framework )的形式了。而 CocoaPods 还不能很好地将 framework 和静态库混编到一起,所以要么不用 framework,要用就要全部用上。关于这一点,CocoaPods 官博上的原话是这样说的:

This is an all or nothing approach per integrated targets, because we can’t ensure to properly build frameworks, whose transitive dependencies are static libraries.

所以,到这里汇集成一句话:Podfile文件中用 “use_frameworks!”。

Xcode配置

设置混编

混编

当项目中没有.swift文件时,需创建一个.swift文件。第一次创建"Test.swift"文件时,会弹窗提示你是否需要自动生成一个桥接文件,这个时候你要毫不犹豫的点是!

但是如果假如你点了否,没关系,稍微再多花点时间而已:

1.手动创建一个头文件,名字叫Your_Product_Name-Bridging-Header.h。

2.确保你的项目目录下至少有一个 .swift 文件。

3.确保在Targets的 Build Settings 里,Product Module Name是有值的。(如果没有,直接设置为$(PRODUCT_NAME)就可以了)

还有一点需要注意,您的swift language version要和导入的第三方库相匹配。

swift language version

下面代码中就是我踩的坑了。

代码配置

按照网上的资料,我就直接在要使用第三方库的地方直接导入“项目名-swift.h”文件并使用了库中其方法,结果报错了,not find func...此刻的我毫不慌张,我把报错在网上一搜,结果懵逼了,搜不到!然后我还是毫不慌张,整整用了一下午的时间这试一下,那试一下,最后还真让我给鼓捣成功了!具体方法如下:

在bridge文件中导入需要引用的第三方库

导入三方库

在需要用到三方库的地方导入“项目名-swift.h”文件以及桥接文件

两个文件都要导入哦

最终大功告成!

相关文章

网友评论

    本文标题:2019-09-04 OC项目中用cocoapods导入Swi

    本文链接:https://www.haomeiwen.com/subject/muxryctx.html