iOS依赖库管理工具之Carthage
2016-08-01 17:49
337 查看
在iOS开发中,我们常会用CocoaPods来进行依赖库的管理。CoaoaPods 是一套整体解决方案,我们在
相比之下,
另外
方法二:在Github 主页上,找到下载地址:https://github.com/Carthage/Carthage/releases,找到Carthage.pkg,下载安装即可。
安装完成后,在终端执行如下指令,可以查看当前carthage的版本:
第二步:创建一个空的carthage文件,指令如下:
此时项目文件夹里会创建一个名为Cartfile的文件。
第三步:使用xcode打开Cartfile文件:
在打开的文件中输入你所要导入的第三方库,示例所示:
当然也可以指定版本号,没有指明版本号的时候,则会自动使用最新的版本。指定版本号示例:
第四步:保存并关闭Cartfile文件,在终端执行如下命令:
carthage会为你下载和编译所需要的第三方库,当命令执行完毕,在你的项目文件夹中会创建一个名为Carthage的文件夹。在 ~/Carthage/Build/iOS里会出现framework和dSYM文件,如下所示:
【说明】:
由于此处只需要导入iOS平台下的库,所以指定了平台,如果需要全部库,那么去掉后面的"--platform iOS"即可。
Build 中存放的是构建好的 framework 包;
Checkouts 中存放的是第三方库项目源文件。
第五步:回到项目设置,进入 General 选项卡,在最下方的 Linked Frameworks and Libraries 中,将Carthage/Build/iOS 中的 framework 文件添加到项目中,如下图所示:
第六步:在 Build Phrases 中,点击左上角的 + 号,添加一个 New Run Script Phrase,在脚本区域输入:
最后将 Alamofire 和 SwiftyJSON 的路径添加到 Input Files 中,如下图所示:
添加这个 Run Script 的作用是为了让运行时能够找到这个动态库。这点 Carthage 官方文档中没有太明确的说明。我实际的实验过,如果不添加这个
进入 Build Phrases ,然后在右上角点击 New Copy Files Phrase,然后将Carthage/Build/iOS 目录中的 dSYM 符号文件拖动进来,如下图所示:
这样项目在运行后,就可以在断点中步入 第三方库 内部的代码进行调试。
如果在导入dSYM文件遇到编译错误,那么检查一下如下配置项,确保其值为NO:
Podfile中指定好我们需要的第三方库,然后 CocoaPods 就会进行下载,集成,然后修改或者创建我们项目的
workspace文件。
相比之下,
Carthage就要轻量很多,它也需要一个叫做
Cartfile的描述文件,但
Carthage不会对我们的项目结构进行任何修改,更不多创建
workspace。它只是根据我们描述文件中配置的第三方库,将它们下载到本地,然后使用
xcodebuild构建成
framework文件。然后由我们自己将这些库集成到项目中。
Carthage使用的是一种非侵入性的哲学。作为开发者,必须在
Carthage将第三方库构建完成后,手动的关联到项目中。
另外
Carthage除了非侵入性,它还是去中心化的,它的包管理不像
CocoaPods那样,有一个中心服务器(cocoapods.org),来管理各个包的元信息,而是依赖于每个第三方库自己的源地址,比如
Github。这样也是有利有弊,好处就是我们对包管理不再依赖中心服务器,不会受中心服务器信息量和稳定性的限制(尤其是在我们这里的网络访问状况问题),弊端嘛,就是我们想查找第三方库的时候,也没有一个中心服务器来帮助我们进行索引,而是必须从网络上自行查找。
1.安装Carthage
方法一:打开终端,输入如下指令。$ brew update $ brew install carthage
方法二:在Github 主页上,找到下载地址:https://github.com/Carthage/Carthage/releases,找到Carthage.pkg,下载安装即可。
安装完成后,在终端执行如下指令,可以查看当前carthage的版本:
$ carthage version
2.使用Carthage
第一步:通过终端进入你的项目文件夹,示例如下:$ cd /Users/GofLee/Desktop/Source/SwiftDemo/SwiftDemo/ThirdLibrary
第二步:创建一个空的carthage文件,指令如下:
$ touch Cartfile
此时项目文件夹里会创建一个名为Cartfile的文件。
第三步:使用xcode打开Cartfile文件:
$ open -a Xcode Cartfile
在打开的文件中输入你所要导入的第三方库,示例所示:
github "Alamofire/Alamofire" github "SwiftyJSON/SwiftyJSON"
当然也可以指定版本号,没有指明版本号的时候,则会自动使用最新的版本。指定版本号示例:
github "Alamofire/Alamofire" ~> 3.4.0
第四步:保存并关闭Cartfile文件,在终端执行如下命令:
$ carthage update --platform iOS
carthage会为你下载和编译所需要的第三方库,当命令执行完毕,在你的项目文件夹中会创建一个名为Carthage的文件夹。在 ~/Carthage/Build/iOS里会出现framework和dSYM文件,如下所示:
【说明】:
由于此处只需要导入iOS平台下的库,所以指定了平台,如果需要全部库,那么去掉后面的"--platform iOS"即可。
Build 中存放的是构建好的 framework 包;
Checkouts 中存放的是第三方库项目源文件。
第五步:回到项目设置,进入 General 选项卡,在最下方的 Linked Frameworks and Libraries 中,将Carthage/Build/iOS 中的 framework 文件添加到项目中,如下图所示:
第六步:在 Build Phrases 中,点击左上角的 + 号,添加一个 New Run Script Phrase,在脚本区域输入:
/usr/local/bin/carthage copy-frameworks
最后将 Alamofire 和 SwiftyJSON 的路径添加到 Input Files 中,如下图所示:
添加这个 Run Script 的作用是为了让运行时能够找到这个动态库。这点 Carthage 官方文档中没有太明确的说明。我实际的实验过,如果不添加这个
copy-frameworks脚本,那么项目在运行的时候会因为找不到这个动态库而在启动的时候崩溃。
3.使用导入库
生成和配置好第三方库之后,我们可以很简单的来使用,直接在要使用的文件中导入,示例如下:import Alamofire import SwiftyJSON
4.附录
如果需要在调试时进入第三方库内部的代码,那么可以参看下面部分的内容。进入 Build Phrases ,然后在右上角点击 New Copy Files Phrase,然后将Carthage/Build/iOS 目录中的 dSYM 符号文件拖动进来,如下图所示:
这样项目在运行后,就可以在断点中步入 第三方库 内部的代码进行调试。
如果在导入dSYM文件遇到编译错误,那么检查一下如下配置项,确保其值为NO:
相关文章推荐
- AVAudioSessionInterruptionNotification not called
- 总结IOS中nil、Nil、NULL和NSNull区别
- iOS开发 --多线程
- iOS开发中pch文件的通用路径表示方法
- iOS开发Embedded dylibs/frameworks are only supported on iOS 8.0 and later for architecture armv7的解决方法
- Xcode自带的instrument中的Automation实现自动化测试简单使用
- iOS 查找字符串 相同 子字符串的位置 range
- iOS 设备标识
- iOS 获取文件的MIMEType类型
- iOS 给模糊加点动画
- IOS-音乐播放器(附Demo)
- iOS 不使用Xcode如何对ipa包进行重新签包
- AFN和ASI的底层实现和区别
- iOS开发-即时通讯环信
- ios--Quartz2绘图
- iOS小数取整(ceil,round,floor)方法
- IOS-基础知识
- iOS每日一记之———————————————图片圆角的处理
- 混日子不是你的错,根源在这里!!!
- xcode7、iOS9 设置启动图片(Launch Image)