Swift项目引入第三方库的方法

  分类:
 
iOS(55) 

目录(?)[+]

Swift项目引入第三方库的方法

转自

http://blog.shiqichan.com/How-To-Import-3rd-Lib-Into-Swift-Project/


以下,将创建一个Swift项目,然后引入3个库:

  • Snappy 简化autolayout代码的库
  • Alamofire HTTP网络库,AFNetworking作者写的
  • SDWebImage 图片加载,objc项目,通过头文件bridge方式供swift使用

其中,前两个是Swift的库,SDWebImage是Objc的库。

源代码见:https://github.com/MarshalW/SwiftWith3rdLibDemo

项目跑起来是这个样子:

做下面步骤之前,需要让自己的项目是git项目。

使用Snappy库

Snappy库,用于简化AutoLayout布局的代码。

和Objc项目不同,Swift项目没有类似CocoaPods的库依赖工具,而是使用git的submodule引入库。目前来看更方便使用。

1. 创建submodule

在当前项目的目录下执行:

        
        
        
        
1
        
        
        
        
git submodule add http s://github. com/Masonry/Snappy.git

执行完会看到多了个Snappy目录。

这样的项目,如果git共享给其他人,他们除了clone项目以外,还需要:

        
        
        
        
1
        
        
        
        
git submodule update - - init - - recursive

2. 将Snappy.xcodeproj加入到Xcode项目中

如下图所示,直接将文件拖拽过去即可:

3. 将Snappy.framework设置到项目中

Xcode打开项目的General,点击+

Swift项目引入第三方库的方法_第1张图片

然后,选择Snappy.framework,加上它。

Swift项目引入第三方库的方法_第2张图片

4. 编写代码测试

如果能正常import,Xcode不报错,就应该没有问题了:

        
        
        
        
1
        
        
        
        
import Snappy

写了个简单的代码运行也没有问题:

        
        
        
        
1
2
3
4
5
6
7
8
9
10
        
        
        
        
override func viewDidAppear(animated: Bool) {
println( "super view: \(imageView.superview)")
let padding = UIEdgeInsetsMake( 100, 100, 0, 0)
imageView.snp_makeConstraints { make in //autolayout
make.edges.equalTo( self.imageView.superview!).with.insets(padding)
return
}
}

使用SDWebImage库

SDWebImage库是Objc编写的。引入的方式和Swift有所不同(从第3步开始)。

1. 创建submodule

这一步还是省不了的:

        
        
        
        
1
        
        
        
        
git submodule add http s://github. com/rs/SDWebImage.git

2. 将SDWebImage.xcodeproj加入到Xcode项目中

3. 设置Target Dependencies

在这里:

Swift项目引入第三方库的方法_第3张图片

加入:

Swift项目引入第三方库的方法_第4张图片

看起来是这样:

Swift项目引入第三方库的方法_第5张图片

找到这里:

Swift项目引入第三方库的方法_第6张图片

加入ImageIO.framework(iOS自带的),以及libSDWebImage.a

5. 设置Other Linker Flags

在这里设置-ObjC

Swift项目引入第三方库的方法_第7张图片

设置完了的样子:

Swift项目引入第三方库的方法_第8张图片

6. 创建Bridge头文件

就是创建一个普通的头文件,一般命名为项目名-Bridge-Header.h

Swift项目引入第三方库的方法_第9张图片

7. 设置Bridge头文件

找到这里:

Swift项目引入第三方库的方法_第10张图片

双击箭头标示的地方,会弹出文本框,将头文件加进去即可。

我开始的时候是参照stackoverflow的回答,将头文件直接拖拽进去,发现用的是绝对路径。可以在拖拽后修改一下:

引入第三方库的常见问题

目前主要碰到的问题是各个Swift第三方库Deployment Target版本不一致。比如Alamofire是8.0,而Snappy是7.0,需要让它们的版本是一致的。

会有类似这样的报错:

        
        
        
        
1
        
        
        
        
ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later ...


你可能感兴趣的:(Swift项目引入第三方库的方法)