2014-04-29 104 views
1

我正在尋找在多個應用程序中的多個開發人員之間共享「常見」Xcode項目的最佳方式。一位開發人員將致力於「通用」Xcode項目,而另一位開發人員將致力於一個項目,該項目將使用來自通用代碼Xcode項目的源代碼。在用戶之間共享Xcode庫

我被卡住的地方是如何用Xcode和Git進行設置,以便當公共代碼庫的開發人員進行更改時,使用該庫的開發人員不會刪除並重新添加Xcode項目或失去工作。

我已經看過一些Git子模塊的文檔,但圍繞這個主題及其實用性存在很多爭論。我們有更好的辦法,只需要一個存儲庫,其中包含所有項目的代碼,這樣每個人都可以在同一個地方注入/註銷?

感謝您的建議和指針!

+0

您是否嘗試製作框架? [請參閱此鏈接] [1] [1]:http://stackoverflow.com/questions/4065052/how-to-build-a-framework-or-library-for- other-developers-the-secure-way – Chandu

+0

我們真的不想讓這個項目使用框架,除非它是唯一/最簡單的方法。 – Brian

+0

你只想使用頭文件和實現文件?或者,你想將它構建爲二進制(一種框架)並使用?或者,它是否應該與其他項目一起安裝在iDevice中? – Chandu

回答

1

可能更簡單的解釋負荷沒有「最好的辦法「在軟件開發中。任何問題總是有很多解決方案。訣竅是找出最適合您的解決方案。在他的情況下,有許多因素需要考慮 - 您的開發人員喜歡如何工作,他們擁有什麼樣的體驗和背景,想要如何管理代碼等。

我認爲有幾種解決方案你需要考慮。挑一個並嘗試一下,但是如果你發現它不起作用或者爲了適應你的需求而做出改變,不要害怕改變。

  1. 一個回購。通常不被認爲是最好的解決方案,因爲它限制了在其他項目上重用代碼的能力。在XCode中,您往往會得到大量構建目標和高度複雜的構建。這可能會很快變得不可管理。還往往會使版本控制變得困難,並且可能會很快破壞事情。

  2. 多個回購和靜態庫。這有很多變化。回購可以由Git獨立管理,也可以使用子模塊。我會認真考慮將代碼分解成構建靜態庫的項目。使用XCode工作區,您可以同時打開多個項目,並將它們排列爲兄弟或嵌套的子項目。這很大程度上取決於你想要構建它們的方式和方式。使用Git子模塊的優點是子模塊有效地進行了版本化,這意味着對靜態庫項目進行更改不會破壞正在使用的所有內容。使用Git子模塊的缺點是它們(恕我直言)不是Git中用戶最友好的部分,並且需要一些適應。一個好的Git客戶端在這方面最有用。 Sourcetree是免費的,但(恕我直言)Tower更容易使用和處理比Sourcetree更好的子模塊。使用Cocoapods。 Cocoapods就像在Xcode中使用Maven或Ant一樣。它使得事情變得快速和容易,並且可以自動處理依賴關係。然而,它也與XCode項目文件混淆,通常需要手動干預,增加了你可能不需要的額外編譯,並且取決於你如何設置你的版本,可以阻礙。弄清楚如何控制它與你的項目文件的方式也需要一些時間。許多人喜歡Cocoapods,因爲它最初易於使用,並且不需要Git子模塊所需的技術知識。就個人而言,我不確定將Java依賴管理理念引入Xcode是一個長期的好主意。

+0

謝謝你對每個解決方案的驚人解釋!我喜歡使用Cocoapods的想法,並且我看到很多項目都在使用它,但是修改Xcode項目會變得很討厭。首先可能會給子模塊和靜態庫一個嘗試。再次感謝! – Brian