Swift 使用Carthage来安装管理第三方库

之前我介绍了如何使用 CocoaPods 来管理第三方库(Swift - CocoaPods的安装使用详解),本文介绍另一个第三方库管理工具:Carthage。

1,Carthage介绍

相较于 CocoaPods 的悠久历史,Carthage 还比较年轻,出现也没几年(自 Swift 语言出来后才有的)。它的目标是用最简单的方式来将第三方框架(frameworks)添加到我们项目中来。
GitHub 主页地址:https://github.com/Carthage/Carthage.git

2,Carthage与CocoaPods的区别

(1)使用 CocoaPods 我们只需要修改 Podfile 文件,CocoaPods 会直接创建和修改项目的 workspace 配置。也就是说 CocoaPods 创建的是高度集成的项目。
而 Carthage 的特点是灵活,耦合度不高,使用时不需要集成相应的 project,也不会创建新的 workspace。仅仅需要依赖打包好的 framework 文件即可。

(2)虽然CocoaPods 功能更加强大,但因为国内网络问题,很多库更新不下来(所以前文里,我将其改用淘宝提供的镜像源),或者更新了又用不了,或是打包时出现各种问题。
Carthage 只需要从 github 上下载项目即可,配置简单,使用的第三方库的时候就像使用苹果原生的 framework 一样,干净简洁。

3,安装Carthage

(1)在“终端”中运行如下命令更新 homebrew
1
brew update

(2)安装 Carthage
1
brew install carthage

(3)安装完毕后执行 carthage version 命令可查看版本。

4,Carthage的使用
(1)首先进入到工程的根目录下,创建空白的 Cartfile 文件。

cd /Users/hangge/Documents/Code/hangge_1359
touch Cartfile

(2)打开 Cartfile 文件,写入如下内容。(这里还是以使用 Alamofire、SwiftyJSON 这两个库为例)

github "Alamofire/Alamofire" ~> 3.0
github "SwiftyJSON/SwiftyJSON"

(3)保存并关闭 Cartfile 文件,执行如下命令。

carthage update --platform iOS

这时 Carthage 就会自动为我们下载和编译所需要的第三方库。

(4)命令执行完毕后,在项目文件夹中会创建一个名为 Carthage 的文件夹。

(4)命令执行完毕后,在项目文件夹中会创建一个名为 Carthage 的文件夹。

 

 

 

 

(5)而在 Carthage/Build/iOS 文件夹下就是刚创建好的 framework 文件。

 

 

 

 

(6)打开我们的工程项目,将上面的两个 framework 拖到 General -> Linked Frameworks and Libraries 中来。

 

 

 

 

(7)点击配置页的 Build Phases 标签坐上角的加号,添加一个 Run Script

 

 

 

 

(8)将新增的 Run Script 做如下修改:

 

 

Shell 下方文本区域输入:/usr/local/bin/carthage copy-frameworks

 

input Files 中添加需要导入的库:

 

$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework

 

$(SRCROOT)/Carthage/Build/iOS/SwiftyJSON.framework

 

 

 

(9)最后开发时,我们只需要在使用的时候 import 一下需要的库就可以了

)最后开发时,我们只需要在使用的时候 import 一下需要的库就可以了。

import UIKit
import Alamofire
 
class ViewController: UIViewController {
 
    override func viewDidLoad() {
        super.viewDidLoad()
        
        Alamofire.request(.GET, "http://www.hangge.com")
            .responseString { response in
                print("Success: \(response.result.isSuccess)")
                print("Response String: \(response.result.value)")
        }
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

5,修改或更新第三方组件库

(1)如果我们项目引用的库没有改变,只是想要将这些库更新到最新版本,则执行 update 命令即可。

carthage update --platform iOS

(2)如果要新增第三方库,或是删除原有的库。我们先编辑修改 Cartfile 文件。再执行执行 update 命令。

carthage update --platform iOS
最后打开项目,修改 General -> Linked Frameworks and Libraries 中的库引用。 以及 Run Script 中的 input Files 里相关内容即可。

 

时间: 2024-12-23 19:15:32

Swift 使用Carthage来安装管理第三方库的相关文章

Swift - CocoaPods的安装使用详解(自动安装管理第三方库)

我们开发的时候,常常需要引入一些第三方库(比如:Alamofire.SwiftyJSON 等等).过去的做法是把这些库下载下来,并引入到工程中.如果有依赖其他库的话,还要手动将这些依赖库给添加进来.关键是如果这些第三方库后面有更新的话,我们还要先把项目中原来的库给删除.再重复前面的步骤.这样就很麻烦了. 而使用 CocoaPods 以后,这些工作我们都不需要做.只需做好配置工作,安装更新这些第三方库,CocoaPods 都会自动帮我们做好. 一.CocoaPods介绍 (1)CocoaPods

Visual Studio管理C++第三方库的解决方法

目前的项目依赖于很多第三方库,每次要再一个新的环境编译/运行,都要花很长时间先编译/安装各种第三方库,而且会出现各种问题,因此决定将所有第三方库编译好之后,放入工程的子目录中,以后就不用重复编译了. 目录结构 整理后的目录结构如下: 一些设置 如此修改目录结构之后,VS工程的一些设置需要进行修改,分别说明一下: 输出文件的路径 在工程属性中 Configuration Properties > General > Output Directory 指定的是编译出来的lib/dll/exe存放的

ios-使用cocoapods 报第三方库找不到

问题描述 使用cocoapods 报第三方库找不到 使用cocoapods 报第三方库 library not found for -lPods-CorePlot 怎么解决 大神们 解决方案 下载和导入lPods-CorePlot 解决方案二: 使用CocoaPods管理iOS第三方库使用CocoaPods管理iOS第三方库使用cocoapods来管理第三方库 解决方案三: 你需要在终端上cd到工程文件夹重新install pods 就行了

[快速学会Swift第三方库] Eureka篇

[快速学会Swift第三方库] Eureka篇 Eureka可以帮你简单优雅的实现动态table-view表单.它由rows,sections和forms组成.如果你的app包含大量表单,Eureka可以真正帮你节省时间. 目录 快速学会Swift第三方库 Eureka篇 目录 编码之前 导入 Eureka 其他操作 创建表单 基础表单 选择类型表单 Segment风格选择器 标准选择器 pickerView风格选择器 三种风格选择器效果对比 带输入框的表单 自定义Row 深入学习 编码之前 导

[快速学会Swift第三方库] HanekeSwift篇

[快速学会Swift第三方库] HanekeSwift篇 Haneke是一个轻量级的缓存,为UIImage,JSON,NSData,String提供记忆和LRU磁盘缓存. 目录 快速学会Swift第三方库 HanekeSwift篇 目录 编码之前 导入HanekeSwift 其他操作 使用缓存 NSData 示例代码 运行结果 JSON 测试接口 示例代码 运行结果 UIImage和String UIImage的拓展用法 示例代码 运行结果 fetcher的其他用法 深入学习 编码之前 编码之前

[快速学会Swift第三方库] SwiftyJSON篇

[快速学会Swift第三方库] SwiftyJSON篇 SwiftyJSON使得用Swift处理JSON数据更加容易.这是解析JSON字符串封装类.实现功能与Javascript中的JSON.parse相近,使用方便. 目录 快速学会Swift第三方库 SwiftyJSON篇 目录 编码之前 导入SwiftyJSON 其他操作 解析本地JSON 示例JSON 示例代码 运行结果 解析网络JSON 示例JSON 示例代码 运行结果 深入学习 编码之前 导入SwiftyJSON 推荐使用CocoaP

[快速学会Swift第三方库] Alamofire篇

[快速学会Swift第三方库] Alamofire篇 Alamofire是 Swift 语言的 HTTP 网络开发工具包,AFNetworking的 Swift 版,使用起来相当简单. 目录 快速学会Swift第三方库 Alamofire篇 目录 编码之前 导入Alamofire 其他操作 Web请求 示例代码 运行结果 数据请求JSON 示例代码 运行结果 上传文件 示例代码 运行结果 下载文件 示例代码 运行结果 深入学习 编码之前 导入Alamofire 推荐使用CocoaPods进行导入

[快速学会Swift第三方库] Kingfisher篇

[快速学会Swift第三方库] Kingfisher篇 Kingfisher是一个轻量的下载和缓存网络图片库.下载和缓存是异步进行操作,已经下载好的图片会缓存在内存和本地,极大得提高app的体验. 目录 快速学会Swift第三方库 Kingfisher篇 目录 编码之前 导入 Kingfisher 其他操作 基础操作 使用optionsInfo参数 回调函数 取消任务 下载器 缓存系统 预取 动态图片 深入学习 编码之前 导入 Kingfisher 推荐使用CocoaPods进行导入,Cocoa

[快速学会Swift第三方库] SQLite.swift篇

[快速学会Swift第三方库] SQLite.swift篇 SQLite.swift 是一个使用纯 Swift 语言封装 SQLite3 的操作框架. 特性: 简单的查询和参数绑定接口 安全.自动类型数据访问 隐式提交和回滚接口 开发者友好的错误处理和调试 文档完善 通过广泛测试 目录 快速学会Swift第三方库 SQLiteswift篇 目录 编码之前 导入SQLiteswift 其他操作 链接数据库 创建表 插入数据 查询数据 修改数据 删除数据 深入学习 编码之前 导入SQLite.swi