這兩天整理了一下工程竖哩,總結一下。
在Xcode工程目錄里怀跛,有藍色目錄和黃色目錄兩種距贷,它們的區(qū)別是什么?
藍色是folder吻谋,黃色是group
folder只能作為資源忠蝗,整個引入到工程中。也就是漓拾,如果以folder的方式引入工程阁最,它是不能被放在complie sources列表里的。因此骇两,如果引入的文件需要編譯速种,那么不要通過folder的方式引入。
group的方式引入文件脯颜,這些文件中的.m文件會被編譯哟旗。
總結一下,一般為了不使源代碼散亂的存在于工程文件夾中栋操,可以把它們進行適當?shù)姆诸悾謩e放在不同的目錄中饱亮。然后矾芙,可以通過拖動或File->Add Files to...的方式,將它們直接加入工程近上。加入過程中剔宪,會彈出對話框,如下:
其中:
1)Copy items if needed:是在必要時進行拷貝壹无,例如被拖動的目錄不在工程目錄中葱绒,則會拷貝一份
2)Create groups:為所加入的目錄創(chuàng)建分組,group name就是目錄的名字斗锭。如果以此方式加入目錄地淀,會顯示出黃色圖標。
3)Create folder references:以folder方式進行引用岖是,如果選擇此方法帮毁,加入到工程中的目錄就是藍色圖標实苞。其中的文件都會被直接拷貝到bundle包中,不參與編譯烈疚。
可以在Target->Build Phase->Link Binary With Library中查看是否所加入的文件參與了編譯黔牵;
可以在Target->Build Phase->Copy Bundle Resources中查看以目錄方式引入的文件或者不能參與編譯的文件(例如代碼會讀取的文本等)是否被打入到bundle包。
重點:
1)在Finder整理代碼爷肝,然后將整理好的各個目錄拖拽進工程猾浦,使用Create Group方式,不需要擔心import時找不到文件或者需要寫文件路徑灯抛;
2)項目中使用了不少h5代碼金赦,這些html,js都不參與編譯牧愁,將整個h5目錄拖拽進工程時素邪,選擇Greate folder reference,以目錄的形式引用即可猪半。
3)對于編譯不同target時使用的不同配置文件兔朦,在build之前調用script從其它目錄進行拷貝或生成,這些配置文件也不參與編譯磨确,而是通過程序讀取沽甥,可以創(chuàng)建一個空目錄,然后將空目錄以folder的形式引入工程乏奥,這樣在編譯之前通過腳本拷貝進這個空目錄的文件就可以被正常打到bundle包中摆舟。