這兩天整理了一下工程,總結(jié)一下。
在Xcode工程目錄里,有藍(lán)色目錄和黃色目錄兩種,它們的區(qū)別是什么?
藍(lán)色是folder,黃色是group
folder只能作為資源,整個(gè)引入到工程中。也就是,如果以folder的方式引入工程,它是不能被放在complie sources列表里的。因此,如果引入的文件需要編譯,那么不要通過folder的方式引入。
group的方式引入文件,這些文件中的.m文件會(huì)被編譯。
總結(jié)一下,一般為了不使源代碼散亂的存在于工程文件夾中,可以把它們進(jìn)行適當(dāng)?shù)姆诸?,分別放在不同的目錄中。然后,可以通過拖動(dòng)或File->Add Files to...的方式,將它們直接加入工程。加入過程中,會(huì)彈出對(duì)話框,如下:

其中:
1)Copy items if needed:是在必要時(shí)進(jìn)行拷貝,例如被拖動(dòng)的目錄不在工程目錄中,則會(huì)拷貝一份
2)Create groups:為所加入的目錄創(chuàng)建分組,group name就是目錄的名字。如果以此方式加入目錄,會(huì)顯示出黃色圖標(biāo)。
3)Create folder references:以folder方式進(jìn)行引用,如果選擇此方法,加入到工程中的目錄就是藍(lán)色圖標(biāo)。其中的文件都會(huì)被直接拷貝到bundle包中,不參與編譯。
可以在Target->Build Phase->Link Binary With Library中查看是否所加入的文件參與了編譯;
可以在Target->Build Phase->Copy Bundle Resources中查看以目錄方式引入的文件或者不能參與編譯的文件(例如代碼會(huì)讀取的文本等)是否被打入到bundle包。
重點(diǎn):
1)在Finder整理代碼,然后將整理好的各個(gè)目錄拖拽進(jìn)工程,使用Create Group方式,不需要擔(dān)心import時(shí)找不到文件或者需要寫文件路徑;
2)項(xiàng)目中使用了不少h5代碼,這些html,js都不參與編譯,將整個(gè)h5目錄拖拽進(jìn)工程時(shí),選擇Greate folder reference,以目錄的形式引用即可。
3)對(duì)于編譯不同target時(shí)使用的不同配置文件,在build之前調(diào)用script從其它目錄進(jìn)行拷貝或生成,這些配置文件也不參與編譯,而是通過程序讀取,可以創(chuàng)建一個(gè)空目錄,然后將空目錄以folder的形式引入工程,這樣在編譯之前通過腳本拷貝進(jìn)這個(gè)空目錄的文件就可以被正常打到bundle包中。