brew install carthage
cd ~/路径/项目文件夹
touch Cartfile
1、方法一:打开Xcode并编辑
open -a Xcode Cartfile
2、方法二:vim编辑,输入I进入编辑模式,按esc离开,并输入:wq保存)
vim Cartfile
github "texturegroup/texture"
Cartfile格式附加说明 参考链接 官方说明
Carthage支持两种类型的源,一个是github,另一个是git。
github 表示依赖源,告诉Carthage去哪里下载文件。依赖源之后跟上要下载的库,格式为Username/ProjectName
git 关键字后面跟的是资料库的地址,可以是远程的URL地址,使用git://, http://, ssh://,或者是本地资料库地址。
告诉Carthage使用哪个版本,这是可选的,不写默认使用最新版本
== 1.0 表示使用1.0版本
>= 1.0 表示使用1.0或更高的版本
~> 1.0 表示使用版本1.0以上但是低于2.0的最新版本,如1.2,1.6
carthage update --platform iOS
TF013550:trunk name$ carthage update --platform ios
*** Fetching texture
*** Cloning SwiftyJSON
*** Cloning ObjectMapper
*** Fetching SDWebImage
*** Fetching PINCache
*** Cloning libwebp
*** Fetching PINOperation
*** Cloning libwebp
*** Checking out PINRemoteImage at "3.0.0-beta.6"
*** Checking out SDWebImage at "4.3.3"
*** Checking out ObjectMapper at "3.1.0"
*** Checking out SwiftyJSON at "4.0.0"
*** Checking out PINCache at "3.0.1-beta.2"
*** Checking out texture at "2.3.1"
*** xcodebuild output can be found in /var/folders/xh/0p311s3j6rl5nmm29_brfc340000gn/T/carthage-xcodebuild.W3tEmd.log
说明:
1、carthage会clone/fetch文件中对应的git第三方库,把每一个第三方库编译成二进制文件的framework文件。
2、--platform iOS命令是可选的,目前每次更新时建议加上,作用是保证只为iOS编译framework,如果不指定平台,会为全平台编译framework文件。
3、当命令执行完毕,在Cartfile文件同级别的文件夹中生成一个名为“Carthage”文件夹和“Cartfile.resolved”文件。打开Carthage文件夹,可以看到两个文件夹Build和Checkouts。
4、Cartfile.resolved 文件用来跟踪项目当前所用的依赖版本号,为了保持多端开发一致
carthage help
TF013550:trunk name$ carthage help
Available commands:
archive Archives built frameworks into a zip that Carthage can use
bootstrap Check out and build the project's dependencies
build Build the project's dependencies
checkout Check out the project's dependencies
copy-frameworks In a Run Script build phase, copies each framework specified by a SCRIPT_INPUT_FILE environment variable into the built app bundle
fetch Clones or fetches a Git repository ahead of time
help Display general or command-specific help
outdated Check for compatible updates to the project's dependencies
update Update and rebuild the project's dependencies
version Display the current version of Carthage
升级指定的FrameWork:
carthage update SVProgressHUD --platform iOS
1、添加到“Linked Frameworks and Libraries”,点击加号,从/Carthage/Build/iOS文件夹中选择Framework添加
2、添加一个新的“Run Script”,并添加命令
说明:carthage copy-frameworks 命令剔除了额外的框架
/usr/local/bin/carthage copy-frameworks
点击Input Files下面的+号为每一个framework添加条目
build phase对项目运行来说不是必须的,但是,这个配置解决了APP因为使用的frameworks包含二进制图像的iOS模拟器在提交APP Store时会被自动拒绝的问题。$(SRCROOT)/Carthage/Build/iOS/MJRefresh.framework
TF013550:trunk name$ carthage update --platform ios
*** Fetching texture
*** Cloning WQPhotoAlbum
*** Cloning SDWebImage
A shell task (/usr/bin/env git clone --bare --quiet https://github.com/rs/SDWebImage.git /Users/yuge/Library/Caches/org.carthage.CarthageKit/dependencies/SDWebImage) failed with exit code 128:
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
1、打印当前xcode的路径:
xcode-select --print-path
2、输入一下命令:(如果有多个xcode版本路径 请选择其中一个)
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
TF013550:trunk name$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
TF013550:trunk name$ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
Password:
TF013550:trunk name$ gem update --system
** Skipped downloading ObjectMapper.framework binary due to the error:
"API rate limit exceeded for 115.236.71.65. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)"