CocoaPods 教學 – 安裝和更新

Photo by Shania Pinnata on Unsplash
Photo by Shania Pinnata on Unsplash
CocoaPods 是 Xcode 的一個套件管理工具 (Package Manager)。套件管理工具是軟體開發中很重要的一環。本章會介紹如何安裝 CocoaPods、如何建立 CocoaPods 專案、以及如何更新套件。

CocoaPods 是 Xcode 的一個套件管理工具 (Package Manager)。套件管理工具是軟體開發中很重要的一環。本章會介紹如何安裝 CocoaPods、如何建立 CocoaPods 專案、以及如何更新套件。

試想如果沒有套件管理工具的話,每個第三方套件都可能會有不一樣的整合方式。此外,每個套件還有跟其他套件的依賴 (Dependencies) 關係。這意味著,你還要再去整合那些依賴套件,而且你還要整合正確的版本。

目前比較有名的是:

  • CocoaPods
  • Carthage
  • Swift Package Manager

其中 Swift Package Manager 是 Swift 官方維護,在未來應該會是主流。不過目前 CocoaPods 的使用人數依舊是很大量,在短期內還不會退下來。

安裝 CocoaPods

首先要先安裝 CocoaPods 的指令:

% sudo gem install cocoapods

pod init: 建立 CocoaPods 專案

要建立 CocoaPods 專案,必須要先建立 Xcode 專案,然後將 CocoaPods 導入專案中。

打開 Xcode 建立一個 Xcode 專案,名稱為 CocoaPodsExample。建立好後將 Xcode 關掉。

打開 Terminal,切換到剛剛 CocoaPodsExample 專案的目錄下:

% cd CocoaPodsExample
CocoaPodsExample % ls
CocoaPodsExample  CocoaPodsExampleTests
CocoaPodsExample.xcodeproj  CocoaPodsExampleUITests

初始化 CocoaPods。目錄下會新增 Podfile 檔案。Podfile 就是 CocoaPods 專案的設定檔。

CocoaPodsExample % pod init
CocoaPodsExample % ls
CocoaPodsExample  CocoaPodsExampleUITests
CocoaPodsExample.xcodeproj  Podfile  CocoaPodsExampleTests

試著在 Podfile 裡引入 Alamofire 套件。

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'CocoaPodsExample' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for CocoaPodsExample
  pod 'Alamofire', '~> 5.1'

  target 'CocoaPodsExampleTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'CocoaPodsExampleUITests' do
    # Pods for testing
  end

end

pod install: 安裝套件

安裝 Podfile 裡面的套件。

CocoaPodsExample % pod install
Analyzing dependencies
Downloading dependencies
Installing Alamofire (5.1.0)
Generating Pods project
Integrating client project
...
CocoaPodsExample % ls
CocoaPodsExample  CocoaPodsExample.xcodeproj
CocoaPodsExample.xcworkspace  CocoaPodsExampleTests
CocoaPodsExampleUITests  Podfile  Podfile.lock Pods

安裝之後,目錄下會新增三個檔案。分別是:

  • Podfile.lock 紀錄著,哪些套件被安裝,以及安裝的版本。你是不會直接去編輯這個檔案。
  • Pods 目錄下就是那些套件檔案。
  • CocoaPodsExample.xcworkspace 是新的專案檔。之後都要用 Xcode 打開 .xcworkspace,而不是原本的 .xcodeproj 檔。千萬不要開錯!

CocoaPods 的版本規則

剛剛在 Podfile 新增 Alamofire 套件時,有看到 ‘~> 5.1’。這意思是說,任何版本只要大於或等於 5.1,且小於 6.0 的 Alamofire 就可以安裝。版本規則為:

  • ‘> 0.1’:任何大於 0.1 的版本
  • ‘>= 0.1’:任何大於或等於 0.1 的版本
  • ‘< 0.1’:任何小於 0.1 的版本
  • ‘<= 0.1’:任何小於或等於 0.1 的版本
  • ‘~> 0.1.2’:任何大於或等於 0.1.2 且小於 0.2 的版本
  • ‘~> 0.1’:任何大於或等於 0.1 且小於 1.0 的版本
  • ‘~> 0’:任何大於 0 的版本,也就是任何版本都可以。也可以直接略過不寫。

也就是說,真正安裝的版本是紀錄在 Podfile.lock,而 Podfile 是描述可安裝的版本規則。所以當你想確認某個套件目前安裝的版本,要在 Podfile.lock 裡面查看。

pod outdated: 列出可更新套件

想要知道哪些已安裝的套件有新的版本時,可以用以下的指令。這指令會列出那些在 Podfile.lock 中,有新的版本可供下載的套件列表。

CocoaPodsExample % pod outdated

pod update: 更新套件

想到更新某個套件時,可用下面的指令更新。它會下載並更新套件,新的版本號會記錄在 Podfile.lock。

CocoaPodsExample % pod update PODNAME

不過對每個套件下指令更新也很麻煩的。用下面的指令可以一次更新所有的套件。

CocoaPodsExample % pod update

結語

CocoaPods 會自動幫你管理依賴套件,安裝正確的套件版本。你只要添加到 Podfile,或是在 Podfile 更改版本, CocoaPods 幫你完成其他的事情。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

You May Also Like
Photo by Alex Alvarez on Unsplash
Read More

Dispatch Queue 教學

GCD 提供有效率的並行處理,讓我們不需要直接管理多執行緒。它的 Dispatch Queues 可以循序地(serially)或是並行地(concurrently)執行任務。我們只需要將要並行的程式當作任務提交到 dispatch queues 就可以了。
Read More
Photo by Florinel Gorgan on Unsplash
Read More

如何製作一個 XCFramework

XCFramework 讓你可以將 iPhone、iPhone 模擬器等多的不同平台的二進位碼打包到一個可發佈的 .xcframework 檔。你只需要為你的 Framework 產生出一個 .xcframework 檔,就可以支援多種平台。
Read More
Photo by Fabian Gieske on Unsplash
Read More

SwiftUI @State & @Binding 教學

SwiftUI 推出了兩個 Property Wrapper – @State and @Binding。利用它們可以達到變數的 Two-way Binding 功能。也就是當變數的值改變時,它會重新被顯示。本章藉由製作一個 Custom View 來展示如何使用 @State 和 @Binding。
Read More
Photo by Svitlana on Unsplash
Read More

iOS:禁止螢幕截圖

基於一些理由,我們可能會想要禁止使用者對我們的 app 做螢幕截圖。然而,iOS 並沒有提供這樣的功能。所幸,我們可以利用 UITextField 來達到此效果。
Read More