Carthage和CocoaPods都可以用来管理第三方框架。
本文的目的是记录一下Carthage的使用方法,不过为了全面一点,也加上了CocoaPods。
一、Carthage
Carthage对项目无侵入性,管理的依赖只需编译一次,并且可以与CocoaPods并存。
注意:Carthage需要iOS 8+
1. 安装carthage
1.1 安装Homebrew
到下面这个网站安装Homebrew
1
https://brew.sh/index_zh-cn
或者直接在终端输入下面的指令
1
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
1.2 更新Homebrew到最新版本
1
$ brew update
1.3 安装Carthage
1
$ brew install carthage
1.4 查看Carthage版本号
查看版本的同时,也可以验证是否安装成功
1
$ carthage version
2. 使用carthage
2.1 终端cd到项目所在文件夹
2.2 创建Carthage文件Cartfile
1
$ touch cartfile
创建Cartfile
2.3 编辑Cartfile并保存(可以使用Sublime进行编辑)
例如导入Alamofire,就在文件中写入github "Alamofire/Alamofire" ~> 4.7,如下图所示。
编辑Cartfile
2.4 开始导入
1
$ carthage update --platform iOS
成功之后文件夹的结构会变为下图这样。
注意:如果build文件夹中没有.framework文件,可以到Xcode的Preferences的Locations中,做下图这样的设置。
2.5 把.framework文件导入项目
下面三张图展示了添加过程。
项目名称 --> TARGETS --> General --> Linked Frameworks and Libraries -> Add Other... --> 选择Carthage/Build/iOS/Alamofire.framework文件 --> 导入成功
2.5.1
2.5.2
2.5.3
2.6 添加Run Script
参考下面两张图进行操作。
项目名称 --> TARGETS --> General --> Build Phases --> 点击左上角加号 --> New Run Script Phase --> 点开Run Script --> 在Shell下面的黑色框中填入/usr/local/bin/carthage copy-frameworks --> 点击Input Files下面的加号 --> 为framework添加访问路径$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework --> 完成
2.6.1
2.6.2
2.7 编译项目,完成!
Command + B编译项目,然后在需要的地方导入头文件,开始使用!
二、CocoaPods
1. 安装
1.1 更新gem到最新版本,终端中输入:
1
$ sudo gem update —system
1.2 删除自带的ruby镜像,终端输入:
1
$ gem sources --remove https://rubygems.org/
1.3 添加镜像,终端输入:
1
$ gem sources -a https://gems.ruby-china.org/
1.4 安装CocoaPods,终端输入:
1
$ sudo gem install cocoapods
1.5 配置CocoaPods,这一步等待时间可能会有点长。终端输入:
1
$ pod setup
2. 使用
2.1 打开终端,cd到项目路径下。
2.2 生成Podfile文件,终端输入:
1
$ pod init
2.3 编辑Podfile文件
在终端输入
1
$ vim Podfile
然后点击键盘上的 i 进入编辑模式,在空白处写上你要用的第三方,例如pod ‘WHKit’,然后依次点击键盘上的esc和冒号,输入wq两个字母,代表保存并退出。
你也可以直接用外部编辑文字的软件来写Podfile文件(推荐Sublime)
2.4 安装,终端输入:
1
$ pod install
完成!
注意: 打开项目的方式发生了改变,以后需要双击.xcworkspace来打开项目。
3. 补充
3.1 如何用双引号的方式导入第三方
打开项目之后就可以直接使用WHKit了,现在可以#import 或#import ,但是却不能#import “WHKit.h”。
解决这个问题的办法是在工程的Build Settings搜索User header search paths,然后在User header search paths中添加$(SRCROOT)并选择recursive。
3.2 如果还想添加其他的第三方,只要在Podfile里面接着添加,终端再执行pod install。
3.3 第三方库一般都有人在维护升级,我们需要隔断时间就更新一下工程中第三方库的版本。只需要终端输入命令pod update。
3.4 如果遇到pod install或者pod update慢的问题
原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,速度就会提升不少。命令如下:
1
2
$ pod install --verbose --no-repo-update
$ pod update --verbose --no-repo-update
3.5 当我们需要去掉某个第三方库时
只需要在Podfile删除该引入该库的语句,然后执行pod update或者pod install。
3.6 删除项目中的cocoapods
把项目文件中多出来的文件都删掉就可以了,恢复点击Test.xcodeproj的方式来启动程序。
不过为了项目正常运行,你需要手动导入已经使用的第三方。
3.7 升级CocoaPods版本
命令和安装CocoaPods的命令一样:
1
$ sudo gem install cocoapods
如果老版本升级cocoapods的时候提示Operation not permitted - /usr/bin/xcodeproj,改用命令:
1
$ sudo gem install -n /usr/local/bin cocoapods --pre
3.8 卸载CocoaPods
1
$ sudo gem uninstall cocoapods
当出现Successfully uninstalled cocoapods字样就代表已经成功卸载。
3.9 升级MacOS导致cocoapods不能正常使用
如果出现这种情况,首先升级ruby:
1
$ sudo gem update --system
然后重新安装:
1
$ sudo gem install -n /usr/local/bin cocoapods
后记
以上就是Carthage和CocoaPods的使用方法。