Xcode

Xcode 8 - files missing from working copy 的原因和解決辦法

More than 1 year has passed since last update.

情境

目前的專案是使用 Xcode 8 和使用 Git 作為版本控管。
發生情境是,我有搬移檔案,找不到的檔案在不同的實體目錄下,

這時候 Xcode 就會提出警告

xxx files missing from working copy

這樣子。

但是這時候去專案裡面的 Target/Build Phases/Compile Sources 區塊裡面看,
路徑也的確是更改過的;

事實上也都是沒有問題的,所以也可以 build 起來。

那是哪邊有問題呢?

搭配版本控制的錯亂

用錯誤訊息喂了一下 Google ,看了幾篇後發現這可能是 Xcode 8 的問題(據說在 GM 版的時候就已經有人跑出來問了)

因為在有版本控制下移動檔案,對版本控制來說原本的檔案就已經不在了。可能就變成是 Xcode 的 Source Control 工具沒有辦法找到原本的檔案,接著就會跳出像是那樣子的警告。

解決辦法

可以加入新的、和舊的檔案的路徑。這時候版本控制就會知道這個檔案目前是 RENAME 的狀態:

git add original/path/to/file
git add new/path/to/file

或是直接把整個工作目錄的變更全部加入 stage

git add .

這時候把需要移動的檔案加入 stage 中,版本控制透過差異比對就會知道你這個檔案其實已經換到其他位置去了。

這時候回到 Xcode 中再重新 build 一次,這個找不到檔案的警告就會消失了。