這幾天遇到一個這樣的問題:
我有2個文件夾分別是res和src,原先是在SlotsGame_pro文件夾下面的。我先去Xcode中Delete,然后Remove Reference。然后在Finder里面移動2個文件夾到SlotsGame_pro/frameworks/runtime-src/proj.ios_mac里面,然后再拖進項目中,結果運行報錯
移到廢紙簍之后,再從廢紙簍把res和src2個項目在finder中移動到目的地:
移動之后導入項目中
然后我各種逛貼吧,搜索對應的問題。期間試過去Build SettingBuild Phases中尋找有沒有對應的路徑,若是有則刪除,可是沒找到。然后還試過了去Build Phases中去Copy Bundle Resources中刪除對應的res和src文件夾再重新自己導入一遍,結果還是不行(PS:Copy Bundle Resources中的文件夾是自動生成的)
就在我有些放棄的時候,我突然看到警告的開頭的位置有這樣的字眼:(由于這個警告太長了,一般都是只看結尾,而不看它報錯的開頭)
這個時候我去Build Phases中找到Run Script選項,發現原來是這里的路徑在文件夾移動位置之后沒有修改,修改之后運行,一切OK。
在這里,補充一下Xcode中的Create groups for any added folders和Create folder references for any added folders的區別:
選擇Create groups方式添加一個文件,添加進來的文件的文件夾是黃色的
選擇 Create folder references方式添加進來的文件的文件夾是藍色的
兩種方式的區別:
1.Create groups
為新增加的文件夾創建組,我們在項目中可以手動添加一個groups(右鍵點擊選擇New Group),但是手動添加的groups實際上并不會存在于項目的目錄中,被添加進groups中的文件仍在位于它原來所在的位置,但是從外部引入進來的groups并不會如此,正如我們剛才那樣。groups一旦被創建或添加,都是以黃色文件夾的形式存在的,當你想要使用文件夾中的某個類的頭文件時,可以直接添加它的引用,因為groups下的cpp文件是會被編譯的。
2.Create folder references
只是將文件單純的創建了引用,這些文件不會被編譯,所以在使用的時候需要加入其路徑,比如在我們想要使用demo文件夾下面有某個頭文件,則需要按照下面的方法添加聲明:#include demo/xxx.h,否則會提示錯誤:xxx.h not found
至于Destination對應選項,當你選擇了這個選項時,如果你想要引入的文件不在你的項目文件的目錄下,Xcode則會自動將這個文件復制一份拷貝到你的項目的目錄下,如果你不選擇,并且這個文件也并不在你的項目目錄下,那么這個文件仍然可以被使用,但是一旦你將項目拷貝到了別的地方時,這個文件就會找不到了。因為這個文件在你的電腦中,而不在你的項目中。