2010-01-04 54 views
3

我有一個相對簡單的目標:我想創建一個本身沒有太多功能但可通過插件擴展的Cocoa應用程序。另外我想在幾個插件上爲用戶提供真正的功能(和工作示例)。如何在Cocoa應用程序和插件並行工作?

因爲我打算讓應用程序和每個插件分開開源項目(和Git倉庫),所以我正在尋找組織我的文件和Xcode項目的最佳方法。我對Xcode並不是非常有經驗,現在我沒有看到一個簡單的方法來在構建完成後不復制文件的情況下工作。

這是一個簡單的單片設置我用來開發到現在爲止: 這裏只有一個Xcode項目擁有多個系列產品:

  • 主要應用
  • 一種插件開發
  • 幾個插件框架捆綁

我在尋找的是一種舒服的方式將它們拆分成幾個Xcode項目(一個用於應用程序n和框架),每個插件一個。由於我的應用程序仍處於開發的早期階段,因此我仍然在更改應用程序和插件中的大量內容。那麼我的意思是「舒服」是,我不想手動複製文件或類似的不便。

我需要的是,插件項目知道他們可以找到當前的開發框架,應用程序需要知道它可以在哪裏找到開發插件。最好的方式就像是項目間的依賴關係,但是我找不到在Xcode中設置類似的方法。

我想到的一種可能的解決方案是將「複製文件構建階段」中的兩個(插件和框架)複製到已知位置,例如, /tmp/development,所以生產和開發文件不會混淆。

我認爲我的解決方案就足夠了,但我很好奇,如果有更好的方法來實現我想要的。因此,歡迎任何建議。

回答

4

首先,不要像你提到的那樣使用靜態「已知位置」。我曾在這種項目中工作過;這是一場皇家的痛苦。只要您需要一些不同的項目副本(用於並行修復錯誤,測試「乾淨」構建與最新更改,在多個分支上工作),構建將開始每個項目的副本其他,你發現自己必須做得比你想要的更頻繁地完成清理/構建。

您可以通過添加相關項目(添加文件)來創建項目間依賴項,右鍵單擊目標並選擇「獲取信息」,然後在常規窗格中添加直接依賴項。

就結構而言,您可以將主應用程序和框架放在一起,也可以將它們放在單獨的項目中。無論哪種情況,我推薦如下目錄樹:

/MyProject 
    /Framework 
    /Application 
    /Plugins 
     /Plugin1 
     /Plugin2 

項目應該通過相對路徑互相引用。這意味着您可以輕鬆地並行處理項目的多個副本。

您還可以查看一個頂級構建腳本,該腳本更改爲每個目錄並運行「xcodebuild」。我不喜歡複雜的構建腳本(我們有一個;它被稱爲Xcode),但如果它所做的只是在需要時調用帶有參數的「xcodebuild」,那麼一個簡單的構建腳本就很有用。

+0

這聽起來很合理,所以我一定會試試這個。 – Koraktor 2010-01-04 21:36:26

+0

它的作品!儘管「框架搜索路徑」必須更改爲「」\「$ {SRCROOT} \」/../ Application/build/$ {CONFIGURATION}「。否則,頭文件將不會被找到。所有這一切都不是一個非常簡單的設計,但這是Xcode的限制。 儘管如此,非常感謝! 更多:http://www.devklog.net/2007/10/07/improving-the-xcode-sub-project-experience-with-scripts-and-wits/ – Koraktor 2010-01-05 20:25:17

相關問題