Carthage介紹
Carthage 是IOS第三方庫的管理工具。相比cocoaPods。可能大家更加熟悉后者?,F(xiàn)在大多數(shù)項目也是使用cocoaPods來管理第三方。但是如果你使用過carthage。你會發(fā)現(xiàn)carthage比cocoaPods好用多了。carthage原理很簡單。它會從github上下載相應(yīng)的第三方庫。然后編譯成framework。以framework形式導(dǎo)入到項目中。簡單、方便、沒有侵入性、低耦合。而cocoaPods會修改項目的workspace。相對來說對工程有侵入性。在使用cocoaPods時有時也會打包問題。
Carthage安裝
carthage可以通過homebrew來安裝。只需要在終端中輸入以下命令:
brew install carthage
接下來就可以使用carthage了。如果項目已經(jīng)集成了carthage。那么只要在終端中輸入
carthage update --platform iOS
這里一定要加platform IOS 如果不加的話,carthage會把所有平臺的庫都打包一份。這是一個很耗時的過程。
如果你只想更新某一個第三方的話??梢允褂靡韵旅?
carthage update Box
or
carthage update Box Result
這里格式是carthage update <第三方庫>
如果想使用carthage其他命令可以在終端輸入
carthage help

如果項目第一次集成carthage。
安裝carthage
切換到項目目錄中
-
新建一個空的carthage文件
touch carthage
-
打開carthage文件在其中輸入想要集成的第三方庫
例如:# This is a web service calling and management framework github "Alamofire/Alamofire" ~> 4.4 # This is a functional JSON parsing library github "thoughtbot/Argo" # This is a library to manage state. github "thoughtbot/Delta" "swift-3.0" # This is a library for FRP github "ReactiveCocoa/ReactiveCocoa" ~> 5.0 # Swift implementations for function currying. github "thoughtbot/Curry" github "SnapKit/SnapKit" ~> 3.2.0 github "onevcat/Kingfisher" ~> 3.0
版本號含義
~> 3.0 表示使用版本3.0以上但是低于4.0的最新版本,如3.5, 3.9
== 3.0 表示使用3.0版本
= 3.0表示使用3.0或更高的版本
如果你沒有指明版本號,則會自動使用最新的版本
- 在終端更新第三方庫。當(dāng)完成以后會生成framework包。
- 打開工程目錄,在general 中的Linked Frameworks and Libraries中導(dǎo)入相應(yīng)的framework。
- 在Build Phases中添加一個腳本。

到此大功告成。項目中就集成了carthage了。在以后開發(fā)中。如果遇到carthage 報錯。一般執(zhí)行carthage update --platform iOS 就可以了,如果只是某一個庫要更新。可以 carthage update <第三方庫>就可以了。
Fastlane 使用
Fastlane是一套使用Ruby寫的自動化工具集,用于iOS和Android的自動化打包、發(fā)布等工作,可以節(jié)省大量的時間。這里只介紹IOS平臺下自動化打包。
gitHub地址
fastlane 官方文檔地址
- 要使用fastlane打包。首先要安裝xcode 命令行工具
xcode-select --install
如果沒有安裝,xcode 會調(diào)起安裝器安裝工具。安裝好了再次安裝會顯示如下:

- cd 到工程目錄中,一定要切換到工程根目錄中。不然下面的命令會失敗。
fastlane init
在這個過程中,fastlane 會在根目錄下新建一個fastlane 目錄。在這個目錄下有兩個重要文件Appfile 和Fastfile。在安裝過程中,會要求你輸入appID 和對應(yīng)密碼。
- 打開
Fastfile文件。因為fastlane 是根據(jù)lane 來打包的。所以在Fastfile中配置相應(yīng)的lane 。默認(rèn)是有兩個lane 。一個beta 可以上傳到testFlight 還有個release 用于上傳到appStore中。

下面是我設(shè)置的一個lane

其中export_method 可以選擇的值有app-store,package, ad-hoc, enterprise, development。
configuration可以選擇的值有 Debug 和Release
這里面的scheme 是設(shè)置的一個變量。
調(diào)用方式
fastlane testLane verson:4.0 build:100
這里是手動設(shè)置的版本號和build號。當(dāng)然也可以直接讀取info.plist文件。
幾分鐘后就可以看到打出來的包了。