首先我想說我對這個主題很新,所以我對它的工作方式的一些一般方面有些困惑。 基本上我正在開發一個iOS項目,它有兩個目標,一個是我正在開發的應用程序本身,它是一個前端iOS客戶端,一個是前開發人員用來定義屬於一個後端框架。作爲子項目添加的靜態庫vs作爲目標添加的靜態庫
應用程序本身(我正在處理的客戶端)和靜態庫(後端框架)的文件都在同一個xcode項目包中。 即使我從來沒有做過靜態庫的「設置過程」,任何東西在編譯時似乎都能正常工作。
現在的問題是:我正在設置單元測試,因爲我想開始開發採用測試驅動開發方法的新功能,所以我一直在努力的事情之一是如果我必須生成或不生成兩個獨立的測試目標,一個用於iOS應用程序,一個用於靜態庫(因爲它們是兩個獨立的目標),礦石對靜態庫和iOS應用程序都使用一個測試目標。 因此,閱讀互聯網尋找解決方案,我發現,即使蘋果建議here,一種常見的方法是將靜態庫添加爲應用程序項目的「子項目」。
我只是問自己爲什麼和我目前的情況有什麼不同(一個項目,目標,其中之一是靜態庫)。有什麼缺點嗎?我應該重組整個項目嗎?
好吧,我同意你的解耦問題,但我的問題點有點不同,我想知道爲什麼與一個子項目的解耦,而不是與不同的目標,每個與不同的文件鏈接的目標。 我想知道爲什麼一個比另一個更好,因爲我發現通過一個子項目添加一些東西有點棘手,它只是一個概念性的東西,例如:「你可能希望將該庫添加到另一個項目中,所以它應該生活在一個單獨的項目中「或者還有其他與我不是軟件包的維護和分發過程相關的問題? –
我認爲這兩個都是有效的原因。您可能需要將該庫添加到另一個項目中,或者您可能希望共享該庫而不共享其餘代碼。 Cocoa項目的原子單元是Xcode項目。出於所有提到的理由,堅持該單位是一個好主意。 – Moshe