了解 Cocoapods 觀念,解決安裝挑戰!
關鍵步驟 ☑️ Xcode Preferences Command line Tool
滿心期待要完成 TDD 測試專案,選擇用 Cocoapods 安裝 Quick, Nimble 套件, 而不是 Xcode 內建的 XCTest,因為想複習套件安裝流程,結果…超挫折的,花了兩天多的時間才能順利準備測試專案,以下會分享本次 Debug 的經驗跟思路整理:
開啟終端機,安裝 Cocoapods 指令
sudo gem install cocoapods
輸入指令後,遇到下圖之錯誤訊息
You might have to install separate package for the ruby development environment, ruby-dev or ruby-devel for example.
看到這段訊息的時候,開始思考 Cocoapods & Ruby 的關聯性:
也了解 CocoaPods 是用 Ruby 實現的,要想使用它首先需要有 Ruby 的環境。幸運的是 OS X 系統默認已經可以運行 Ruby 了。但是有時候 Ruby 版本過低是無法正常支持 CocoaPods 的使用,所以需要先安裝更新升級 RVM 和 Ruby。
檢視電腦軟體當下的環境&版本狀態
macOS :Monterey 12.0.1
Xcode :13.1
Cocoapods:1.5.2
Ruby:macOS 內建
RVM & Ruby
進一步了解 RVM & Ruby 的觀念介紹,看了以下教學分析文章後,選擇使用 RVM 來管理 Ruby 版本。
RVM info
確認 RVM 有安裝成功,但 Ruby 仍是 macOS 內建?!
先來升級 macOS & Xcode 好了!
注意升級後, Command Line Tools 一定要勾選!
Xcode 升級 13.2 ✅ Command Line Tools!
打開 Xcode 軟體,點擊左上方的 Xcode 選單中的 Preferences,選擇 Locations ,看到 Command Line Tools 後,點擊你要使用的 Xcode 版本,再回到終端機輸入指令,繼續進行 Cocoapods 安裝流程。
關鍵卡點
如果沒勾選 Command Line Tools,就會一直無法進行 Cocoapods 套件安裝的工作,然後就會一直誤以為 Ruby 環境安裝有問題,在這個迴圈裡不斷地鬼打牆啊~
更新後的軟體環境&版本狀態
macOS :Monterey 12.2
Xcode :13.2
Cocoapods:1.11.2
Ruby:2.7.2
建立描述套件清單的 Podfile
將套件加到 Xcode 專案前,要先在 Xcode 專案資料夾下加入 Podfile 檔,它將用來描述我們想安裝的套件清單。
產生 Podfile 檔的方法如下:
- 在 terminal 裡利用指令 cd 切換到專案的資料夾下。
先在 terminal 輸入 cd 和空白,點選 Xcode 專案的藍色 icon,將它拖曳到 terminal。
再刪除最後附檔名為 xcodeproj 的檔名,在此我們刪除 BankTDD.xcodeproj。
在終端機輸入 pod init 後,會產生 Podfile;再輸入 pod install 指令,就會讀取 Podfile ,並且建立專案所需的相關檔案。
- Pods 資料夾
- Podfile.lock
- projectname.xcworkspace 檔案
加入測試套件 Quick, Nimble
將測試套件加入 Xcode 專案內的 Podfile 檔案
本次安裝心得
先前使用的是舊版 Cocoapods,透過這次更新 Cocoapods 版本,除了踩坑之外,也學習了以下三項概念,希望能幫助大家更快釐清相關知識脈絡:
1️⃣ Ruby 的環境設定概念
2️⃣ 了解 RVM, GEM, Bundler 概念
3️⃣ 開發工具的環境版本控制(bundle exec pod install)
在軟體環境建置時,真的要特別紀錄每個軟體、套件的版本,不然在 debug 的過程其實會蠻慌亂的!
在公司內共同開發專案的時候,若團隊成員們使用的套件版本不ㄧ致,可能會導致專案無法順利符合預期。