编程 20

图文直播版,Cocopod在Swift引入第三方

By admin in 编程 on 2019年9月17日

生成桥接文件 使用自动生成方法

场景一:使用Cocopods导入框架

看以前的教程用Cocopods导入框架也要手动设置桥接文件,我最近创建的项目用Cocopods安装的<code>SDWebImage</code>和<code>SVProgressHUD</code>发现xcode会自动生成一个桥接的.h文件名字是<code>Targets-Bridging-Header.h</code>,并且会自动设置路径如图,这个稍后在场景2再继续介绍

编程 1

image description

用Cocopods导入的OC框架Xcode会自动生成一个文件但是我并不能在本地找到他,看SDWebImage的这个文件如下
<a href=”;

编程 2

SDWebImage

</a>

在使用的过程中直接用<code>import
SDWebImage</code>就可以使用<code>
SDWebImage</code>的各种方法了
这种由Cocopods导入的框架都会生成这个类似的文件不用在桥接文件再次引入头文件类似<code>#import
“UIImageView+WebCache.h”</code>.

首先创建一个Swift工程,跟以往的cocopod引入到OC工程一样,进入到工程目录下,终端执行vim
Podfile
创建一个关于库的配置文件,将想要导入的三方库,写入到Podfile文件中。

步骤:

场景二:没有使用Cocopods或者使用Cocopods手动导入框架

没有使用Cocopods就需要自己新建一个桥接文件了当然如果用了Cocopods可以使用Xcode自动生成的就是场景一的那种情况了,下图新建一个桥接文件命名随意这里的图是用别人的真是随意了啊,我建议命名规则可以按照<code>Targets-Bridging-Header.h</code>毕竟这样看起来正规点嘛

编程 3

image description

填好文件名字,选中语言为Objective-C,点击Next

这个时候回出现一个弹框,意思就是 你是否想要配置一个OC桥接文件,选择创建

编程 4

image description

,路径自动会设置可以按照场景一的图找到就不再上图了。这里强调一个重要设置

注意、注意、注意

重要的事情说三遍嘛

1.选择target(就是左边你的工程target)—— BuildSettings —— search Paths
下的 User Header Search Paths

2.双击后面的空白区域,并且点击“+”号添加一项:并且输入:“$(PODS_ROOT)”(没有引号),选择:recursive(会在相应的目录递归搜索文件)。

编程 5

编程,image description

编程 6

image description

这个设置完才可以保证在桥接文件里能够正常引用OC库

一切设置妥当就可以手动拖入OC库了,举个例子我用的<code>Toast</code>

编程 7

王森博客,Swift使用OC框架

<a href=”;

编程 8

10C510A6-B0F0-4E48-B87C-5376FC98A58D

</a>

愉快使用OC和Swift的混编吧

platform:ios, ‘8.0’

1>在swift工程里面创建一个OC文件,如图:

target ‘FaceRecon’ do ‘8.0

编程 3

pod ‘AFNetworking’, ‘~> 3.1.0’

填好文件名字,选中语言为Objective-C,点击Next

pod ‘MJRefresh’, ‘~> 3.1.7’

2>这个时候回出现一个弹框,意思就是
你是否想要配置一个OC桥接文件,选择创建

pod ‘MBProgressHUD’, ‘~> 0.9.2’

编程 4

pod ‘SDWebImage’, ‘~> 3.8.1’

3>这个时候,就一切ok了,你把你创建的那个OC文件import到这个桥接文件里面,运行一下,没有问题.

end

编程 11

之后执行在终端执行命令,pod install

这个时候你去可以去看一下,如下图的地方,Xcode会自动配置好桥接文件的路径

创建完成已经成功了一半,接下来打开swift
工程,当然是通过FaceRecon.xcworkspace进入到工程,接下来选中工程的General->下面的linked
Frameworks and Libraries点击添加按钮会在Workspace中出现类似的三方名字,

编程 1

编程 13

但是,pod目录里面的第三方库的呢?这样做是出现一个错误的,如图:pod里面的第三方文件找不到,我也是找各种资源啊,可能是我比较笨吧,好长时间才找到(也不太好找,好多资源都是粘贴复制的),但是我看了半天才明白(因为人家都是文字的),于是我决定还是总结一下,来一个图文直播的,兴许会帮助一些猿友,哈哈

libSDWebImage.a
在这里添加的意义为将三方文件转换为静调库,创建一个Bridging-Header.h文件,此操作是将OC代码与Swift进行桥接,在Bulid
Settings 在搜索框中输入bridging 会出现 Objective-C Bridging Header
填写刚刚创建的桥接目录,这样就完成了桥接文件的路径书写,例如$(SRCROOT)/bridging-Header.h

编程 14

编程 15

造成这样的原因是:pods目录并没有在用户头文件检索的路径之下😁

在搜索框中再输入search 查看User Header Search Paths 文件目录是否配置
如果没有配置请添加 $(SRCROOT) 后面的选择 选为recursive。

1.选择target(就是左边你的工程target)—— BuildSettings —— search Paths
下的 User Header Search Paths

编程 16

2.双击后面的空白区域,并且点击“+”号添加一项:并且输入:“$(PODS_ROOT)”,选择:recursive(会在相应的目录递归搜索文件)。

当然记得在桥接文件中写入三方库的名字,例如:

编程 5编程 6

编程 19

完事了,再运行一下程序试试看,(如果不行,不妨clean一下,如果还是不行,就关掉项目,重新安装一下第三方库,如果再不行,你人品就不行了,哈哈,开玩笑),说明一下:我使用的Xcode
8.1正式版本,这样操作没有问题.

这样就完成了cocopod将三方导入到工程中,并且配置路径可以引用。

尝试一下吧!

一切顺利!

编程 20

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2020 澳门新葡亰官网app 版权所有