加入檔案時記得勾選 Copy items if needed
當我們在開發 iOS App 時,有時會需要從別的地方將檔案加到 Xcode 專案的 Project Navigator 裡,比方下圖的 button.mp3。
加入檔案時請記得勾選 Copy items if needed,如此它才會將檔案複製一份,加入專案的資料夾裡。
忘了勾選會怎樣呢 ? 將發生很可怕的事情 ! 當你完成 App,將專案程式上傳到 GitHub ,之後朋友從 GitHub 下載你的程式,從 Xcode 打開時將出現紅色錯誤。
接下來就讓我們以實際的例子,親眼見證 Copy items if needed 忘了勾選造成的大麻煩吧。
如上圖所示,我們從 GitHub 下載的程式出現紅色錯誤,問題出在錯誤訊息裡的這段文字
error: no such file or directory: '/Users/mac/Desktop/CarPool/CarPool/Controller/LoginViewController/SignInViewController.swift'
檔案找不到 !
再回頭仔細檢查 Project navigator,將發現 SignInViewController.swift 果然有問題,它是紅色的 !
但是對方的 Mac 上明明看得到這個檔案呀。
問題出在檔案的路徑。另外加入的 SignInViewController.swift 忘了勾選 Copy items if needed,所以它不在專案的資料夾裡,上傳到 Github 的專案也不會有這個檔案。然而對方在自己的 Mac 上存取卻沒有問題,因為檔案的確存在對方的 Mac 上,只是不在專案資料夾裡。
仔細比對後,我們發現沒問題的檔案路徑如下,它果然在我的個人帳號路徑 /Users/shih-yingpan/ 下。
但是有問題的檔案,它的路徑卻是 /Users/mac/ 下。我的 Mac 並沒有 /Users/mac / 這個路徑呀,因此當然找不到這個檔案 。
要如何避免這個問題呢 ? 當我們將檔案從另一個地方加到專案時,請記得勾選 Copy Items if needed,讓它將檔案複製一份放在專案的資料夾裡,才不會讓檔案忘了上傳 Github 的悲劇再度發生。