Swift项目引入第三方库的方法
以下,将创建一个Swift项目,然后引入3个库:
其中,前两个是Swift的库,SDWebImage是Objc的库。 源代码见:https://github.com/MarshalW/SwiftWith3rdLibDemo 项目跑起来是这个样子: 做下面步骤之前,需要让自己的项目是Git项目。 使用Snappy库Snappy库,用于简化AutoLayout布局的代码。 和Objc项目不同,Swift项目没有类似CocoaPods的库依赖工具,而是使用git的submodule引入库。目前来看更方便使用。 1. 创建submodule在当前项目的目录下执行: git submodule add https://github.com/Masonry/Snappy.git 执行完会看到多了个Snappy目录。 这样的项目,如果git共享给其他人,他们除了clone项目以外,还需要:
git submodule update --init --recursive 2. 将Snappy.xcodeproj加入到Xcode项目中 如下图所示,直接将文件拖拽过去即可: 3. 将Snappy.framework设置到项目中Xcode打开项目的General,点击+ 然后,选择Snappy.framework,加上它。 4. 编写代码测试如果能正常import,Xcode不报错,就应该没有问题了:
import Snappy 写了个简单的代码运行也没有问题:
override func viewDidAppear(animated: Bool) { ? ? println("super view: (imageView.superview)") ? ?? ? ? let padding = UIEdgeInsetsMake(100,100,0) ? ? imageView.snp_makeConstraints { make in //autolayout ? ? ? ? make.edges.equalTo(self.imageView.superview!).with.insets(padding) ? ? ? ? return ? ? } } 使用SDWebImage库SDWebImage库是Objc编写的。引入的方式和Swift有所不同(从第3步开始)。 这一步还是省不了的: 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,需要让它们的版本是一致的。 会有类似这样的报错: ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later ... (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |