码迷,mamicode.com
首页 > 其他好文 > 详细

Carthage - 一个简单、去集中化的Cocoa依赖管理器

时间:2016-05-07 08:26:25      阅读:350      评论:0      收藏:0      [点我收藏+]

标签:

项目源址: https://github.com/Carthage/Carthage

想到iOS/OS X项目的依赖管理,第一个想到的一定是大名鼎鼎的CocoaPods。下面是Carthage介绍里面的讲述两者的不同之处:

CocoaPods (默认)自动建立和更新一个Xcode workspace,用来管理你的项目和所有依赖。Carthage使用xcodebuild来编译出二进制库,剩下的集成工作完全交给开发人员。

CocoaPods使用起来方便,Carthage更加灵活并且对现有项目没有太多的侵略性。

CocoaPods希望建立一个生态系统,可以更加方便的发现和集成第三方代码库。Carthage希望变成一个去中心化的依赖管理系统,不提供中心化的项目列表,减少维护成本和单点失败的概率。不过这样给开发人员寻找项目带来不便。

CocoaPods的项目需要配置podspec文件,包含了项目和第三方库的信息。Carthage并不使用类似的配置文件,第三方库的依赖关系是通过Xcode项目来配置的。

安装Carthage

1. 直接下载安装包: 地址 , 不过文件host在amazon S3上面,我尝试过几次未果。。。 

2. 使用 Homebrew

brew update
  brew install carthage
技术分享
3.进入项目创建
vim Cartfile 

Cartfile内容示例如下
  • >= 1.0 for “at least version 1.0” 1.0以上
  • ~> 1.0 for “compatible with version 1.0” 最好是1.0,
  • == 1.0 for “exactly version 1.0” 必须是1.0
  • 什么也不写,默认是最新版本
github "SnapKit/Masonry"
4.终端运行
carthage update
 
运行carthage update的结果如下

dongweideiMac:testCarthage dongwei$ carthage update

*** Cloning Masonry

*** Checking out Masonry at "v1.0.0"

*** xcodebuild output can be found in /var/folders/xy/dys150sn02q07gyq2fhn552w0000gn/T/carthage-xcodebuild.yPmhUH.log

*** Building scheme "Masonry OSX" in Masonry.xcworkspace

dongweideiMac:testCarthage dongwei$ 

文件目录如下

技术分享


其中文件Cartfile、Cartfile.resolved 和 Carthage文件夹是与Carthage被创建出来的,其他的项目自身带的
 
5.打开 Carthage文件夹 进入Bulid。以mac为例,进入mac文件夹找到Masonry.framework拖到项目中
或者在项目中选中Target -> Build Phases -> Link Library with Librarie点击+号,然后点击左下角的add Other.. 找到。framework添加就行
技术分享
6.添加脚本
在 Build Phases -> +(左上角) -> New Run Script Phase
然后,点开Run Script 添加脚本
/usr/local/bin/carthage copy-frameworks
最后添加"Input Files”(以Alamofire为例)
$(SRCROOT)/Carthage/Build/iOS/Masonry.framework

技术分享
技术分享

添加的脚本的作用
在App Store提交通用二进制触发bug时这个脚本将运行,保证在归档时必要的bitcode相关文件被拷贝。
This script works around an App Store submission bug triggered by universal binaries and ensures that necessary bitcode-related files are copied when archiving.
 
另外需要注意Carthage 支持OS X的各个版本,但是对于iOS只支持iOS 8及其以上
only officially supports dynamic frameworks. Dynamic frameworks can be used on any version of OS X, but only on iOS 8 or later.
 
最后附上Carthage的github地址:https://github.com/Carthage/Carthage


Carthage - 一个简单、去集中化的Cocoa依赖管理器

标签:

原文地址:http://blog.csdn.net/donwei8/article/details/51331608

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!