Swift项目引入第三方库的方法
来源:互联网 发布:啊哈算法 编辑:程序博客网 时间:2024/05/02 02:45
目录(?)[+]
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 https://github.com/Masonry/Snappy.git
执行完会看到多了个Snappy目录。
这样的项目,如果git共享给其他人,他们除了clone
项目以外,还需要:
1
git submodule update --init --recursive
2. 将Snappy.xcodeproj加入到Xcode项目中
如下图所示,直接将文件拖拽过去即可:
3. 将Snappy.framework设置到项目中
Xcode打开项目的General
,点击+
然后,选择Snappy.framework
,加上它。
4. 编写代码测试
如果能正常import
,Xcode不报错,就应该没有问题了:
1
import Snappy
写了个简单的代码运行也没有问题:
12345678910
override func viewDidAppear(animated: Bool) {println("super view: \(imageView.superview)")let padding = UIEdgeInsetsMake(100, 100, 0, 0)imageView.snp_makeConstraints { make in //autolayoutmake.edges.equalTo(self.imageView.superview!).with.insets(padding)return}}
使用SDWebImage库
SDWebImage库是Objc编写的。引入的方式和Swift有所不同(从第3步开始)。
1. 创建submodule
这一步还是省不了的:
1
git submodule add https://github.com/rs/SDWebImage.git
2. 将SDWebImage.xcodeproj加入到Xcode项目中
3. 设置Target Dependencies
在这里:
加入:
看起来是这样:
4. Link Binaray With Libraries
找到这里:
加入ImageIO.framework(iOS自带的),以及libSDWebImage.a
5. 设置Other Linker Flags
在这里设置-ObjC
设置完了的样子:
6. 创建Bridge头文件
就是创建一个普通的头文件,一般命名为项目名-Bridge-Header.h
7. 设置Bridge头文件
找到这里:
双击箭头标示的地方,会弹出文本框,将头文件加进去即可。
我开始的时候是参照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项目引入第三方库的方法
- Swift项目引入第三方库的方法
- Swift项目引入第三方库的方法
- Swift项目引入第三方库的方法
- Swift项目引入第三方库的方法
- Swift引入第三方库
- Laravel引入第三方库的方法
- Swift 引入第三方字体库
- swift项目桥接通过cocoapods pod下来的第三方oc文件引入不成功
- 第三方库的使用,不引入到项目中
- GCC编译引入第三方库的方法
- Xcode6 引入第三方静态库工程的方法
- Angular引入第三方库--问题解决方法
- 引入第三方库
- swift 调用第三方的oc 方法
- 把第三方DLL的源代码引入到项目中
- Swift 如何嵌入OC文件以及Cocoapods管理的swift项目导入OC第三方库
- Swift 第三方库
- 文件读取与进制转换
- java Clob类型的字段转化为String类型的字段
- AlarmManager研究
- Android java.lang.UnsatisfiedLinkError错误
- C#字符串转日期格式
- Swift项目引入第三方库的方法
- 100天后Win 10将不再免费更新
- 心灵鸡汤之20160422
- 输出数组的全部组合
- 在计算机中删除指定文件
- Android Scroll 详解
- iOS Apple Pay详解以及处理支付逻辑(附带Demo)
- mysql 5.7 版本,密码无法登陆,更改密码时出现ERROR 1054 (42S22): Unknown column 'password' in 'fie
- 每天laravel-20160723|Application-3