2020年6月19日 星期五

[iOS] 使用Carthage來管理第三方套件

Carthage是一個較新的管理套件的工具,比起Cocoapods使用起來更加地方便且輕巧。
安裝Carthage
打開終端機後輸入,使用Homebrew進行安裝
brew install carthage
如果沒有安裝Homebrew的朋友們,可以點選以下的網址安裝
安裝完畢後,輸入以下的指令確認有反應
Carthage version
確認安裝成功後,我們試著開啟一個專案來使用看看。
找一個有支援Carthage的第三方套件,通常會在套件頁面會有個Tag表示有支援Carthage
接著到專案目錄底下新增一個Cartfile檔案,可以使用熟悉的文字編輯器新增此檔案。
接著我們加入以下的文字,代表我們要使用Kingfisher這個套件

github "onevcat/Kingfisher"

文字的內容通常於套件提供者的Github上面會提供,接著輸入指令下載套件

carthage update

這邊必須要等一段時間,Carthage會從Github上面下載套件,並且將它打包成Framework,如果你使用的套件有支援macOS、tvOS、watchOS的話,也會一併下載,你可以依照你的需求決定要下載哪個檔案,這樣可以比較省時。
所以你可以將指令改成以下的樣子
iOS
carthage update --platform iOS
macOS
carthage update --platform macOS
tvOS
carthage update --platform tvOS
watchOS
carthage update --platform watchOS
安裝完畢後,你的專案會多出Carthage的資料夾,
我們可以從裡面的Build資料夾中看到它編譯完成的Framework。
接下來我們開啟我們的專案,並且於Build Phases增加一個 Run Script Phase
接著將以下的內容複製到Shell之中
/usr/local/bin/carthage copy-frameworks
Input Files增加你的套件路徑
$(SRCROOT)/Carthage/Build/iOS/Kingfisher.framework
Output Files也增加套件路徑
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Kingfisher.framework
Input 與 Output基本上就只有最後一段framework名稱不同,其他就複製貼上就可以了,如果你有多個套件,記得每個都要加上Input與Output。
此時你的Run Script檔案應該會像這個樣子
接下來,導入套件到你的專案之中
點選Targets -> Build Phases -> Link Binary With Libraries
接著點選 + 按鈕,到Build資料夾中選擇套件

最後你就可以在程式碼中使用套件了,別忘了要import唷
import UIKit
import Kingfisher

class ViewController: UIViewController {
    
    @IBOutlet weak var imageView: UIImageView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let url = URL(string: "https://i.imgur.com/aMMk5ri.jpg")
        imageView.kf.setImage(with: url)
    }

}
接下來分享一些Carthage的指令
# 版號 >= 5.0
github "onevcat/Kingfisher" >= 5.0

# 版號 5.x
github "onevcat/Kingfisher" ~> 5.0

# 版號 5.0
github "onevcat/Kingfisher" == 5.0

# 最新版
github "onevcat/Kingfisher"

# 指定 Git branch
github "onevcat/Kingfisher" "branch"
只更新某個套件
carthage update Kingfisher




沒有留言:

張貼留言