【iOS】Carthage的使用方法,顺带CocoaPods

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的使用方法。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容