前言
最近有和上家公司一起做iOS的同事交流沟通,才发现自己的技术点有些许落后了.同事已经用Swift或者ObjectiveC嵌套Swift
方式开发项目了,而我还停留在ObjectiveC
的阶段.
为了使自己不被淘汰,所以开始强迫自己用Swift
开发了.
虽然去年花了点时间学习了Swift
,但是公司项目都是OC的原因,也一直没有实际将Swift
用在项目开发当中.
先用ObjectiveC嵌套Swift
方式来一点点实践.
学和用是两回事,Swift的道路上,有许多的坑,这里记录一下.
一.什么是Carthage
关于`Carthage是什么?这里我简单把它理解为CocoaPods.
但是又有所区别,想更深入的了解和使用Carthage
,英文好的程序猿/媛们可以自行阅读其Github
上的README.md文件.
英文不好的也不用担心,网上也有很多写的很详细的文章,这里简单贴几篇,我就不花费太多的篇幅介绍了.
1 - Carthage:去中心化的Cocoa依赖管理器
2 - Carthage 初探:四大优势与四大劣势
3 - 如何使用Carthage管理iOS依赖库
4 - 攻城利器 —— Carthage简单介绍
5 - Carthage使用心得-让自己的项目支持Carthage
下面我就讲解一下怎么以最少的步骤,最省事的方法,使用Carthage
给iOS的项目文件配置Swift
第三方库
我们安装下面两个比较流行的Swift
第三方库,作示例
- Alamofire -
Swift
上的AFNetworking - Kingfisher -
Swift
上的SDWebImage
二.安装Carthage
我们可以通过以下2种方式去安装Carthage
- release下载pkg文件直接点击安装
- 通过
homebrew
安装
终端下分别运行以下2行命令
$brew update
$brew install carthage
推荐使用第一种方式安装.使用homebrew
时,运行$brew update
时,特别慢,甚至失败
三.创建并配置Cartfile
文件
使用Cartfile
列出我们想要使用的`frameworks
这里,我们不需要像Podfile
文件的创建一样,必须要到特定的项目目录下建立文件.
我们可以在电脑上一次性配置后,多个项目使用.
这里我将Cartfile
文件放置在我的
/Users/Story5/Story5/ITMeterial/Swift
文件夹下.
以下操作都在终端下运行
1. 使用cd
进入到该目录下
$cd /Users/Story5/Story5/ITMeterial/Swift/
2.使用touch
创建Cartfile
文件
$touch Cartfile
3.使用Xcode打开编辑Cartfile文件
$open -a Xcode Cartfile
4.配置上面提到的2个framwork
将下面的代码写到你的Cartfile
文件里,保存并关闭
github "Alamofire/Alamofire" ~> 4.4
github "onevcat/Kingfisher" ~> 3.0
这里说一下,这么书写是怎么来的
我们进到Alamofire的GitHub
主页,会看到这样的图标 ,表示该库支持Carthage
往下滚动页面,我们会看到Carthage
下面有这样一行代码
github "Alamofire/Alamofire" ~> 4.4
,将其写入Cartfile文件即可
5.终端下运行carthage update
安装framwork
$carthage update
我们会看到类似这样的提示Cloning Alamofire
,耐心等待一下
当再次看到以下提示时,表示我们的Swift
库已经安装成功了
Building scheme "Alamofire iOS" in Alamofire.xcworkspace
6.将需要的framework
导入到工程中
(1) 生成的framework
所在目录
进入我们之前创建Cartfile
的目录下,我们会发现多了个Carthage
文件夹,依次进入~/Carthage/Build/iOS
,我们会看到Carthage
为我们生成的两个framework
Alamofire.framework
Kingfisher.framework
(2) 将framework
导入到项目中
直接将生成的两个framework
拖到工程中,在弹出的菜单中勾选Copy items if needed
选项
(3) 配置你的Xcode
依次点击项目文件
–>Targets
–>General
–>Embedded Binaries
,点击+
,将我们之前导入的两个framework
添加进来,如下图所示
到这里为止,我们所需的配置都已经成功了,接下来就按API Reference
编写我们的Swift
代码就可以了