2011-10-22 134 views
7

我們計劃在AppStore中啓動一系列應用程序。它們將用於某種不同的期刊,顯示通過XML從服務器下載的不同內容。所以這些應用程序將從完全相同的代碼(這是一個通用的應用程序,所以它會在iPhone/iPad的工作)。在iOS中的多個項目之間共享代碼的最佳方式

我最初的想法是,爲了上傳應用程序,編譯只是改變圖像,標誌和配置(plist),使應用程序作爲特定的日誌反應。壓縮文件將被上傳到AppStore。

但是,這導致了一個可怕的方法,它促進了失敗和錯誤。如果我忘記更改某個圖像,因爲您無法在編譯的文件中看到它們(因爲它包含在內),它們將最終存儲在商店中(爲了使應用程序更改,我需要四到五天的時間)。

我試圖尋找一個更好的方法,儘可能保持獨立的項目。我希望能夠分享整個代碼庫:視圖,類和筆尖,併爲每本期刊創建不同的項目。

哪個是最好的方法來實現呢?什麼結構可以讓我將邏輯(控制器,類)和UI分組,並在不同的項目中使用它?

我希望我解釋過。

一如既往,非常感謝。

回答

6

您應該將大部分通用代碼保存爲一個庫項目。每個最終項目都應與此項目相關聯,並提供圖像/資產以及代碼,以將這些資產提供給公共代碼。在我的日常工作中,我也編寫了一個共用庫,供我的僱主使用2個產品/應用程序。

+0

謝謝Aditya :)。我可以在圖書館項目視圖和他的控制器中加入嗎?我想在儘可能多的代碼中包含儘可能多的代碼。 – IoChaos

+0

是的,您可以將視圖和控制器包含在庫項目中。 –

+0

儘管所有的問題都是達到目標的好方法,但最適合。 – IoChaos

-2

如果你使用的是git倉庫,你可以爲每個你想要的應用程序分支,這將跟蹤所有的差異,如果你需要切換你正在使用的是你必須檢查該分支。這將允許完全相同的結構只是每個實際代碼之間的微小差異。

+0

然後,他必須不斷記住將代碼更改合併到每個應用程序的分支。 –

0

您可以有一個創建多個應用程序的Xcode項目。您需要爲每個應用程序創建一個單獨的Info.plist,其中包含不同的包標識符。

+0

感謝羅布,非常有趣。我對這種方法一無所知。無論如何,未來的應用程序數量可能會大幅增長,所以在這種情況下可能不是最好的方法。 – IoChaos

4

一個Xcode項目可以有多個目標,所有目標共享代碼,但是每個目標都從同一個項目目錄/文件夾中的不同子目錄/文件夾獲取自己的資源(圖標,圖像,文本,plists等) 。然後你可以檢查整個事情,或只是共享源,到你的源代碼控制庫。

您應該在上傳到商店之前,在設備上測試每個應用程序,這些應用程序的構建方式與除設計代碼之外的任何提交方式完全相同。

+0

謝謝hotpaw2。它讓我害怕了一些,因爲當我更改圖像時,問題已經開始,並且不知道爲什麼,AppStore中的其他圖像已經結束(XCode的某種緩存),或者我沒有清除所有圖像目標......也許我需要更多的獨立性...... – IoChaos

+0

如果你是偏執狂,只需從你的系統中完全刪除你不想要的其他圖像(在進行備份之後)。然後提交版本號,做一個乾淨的版本,並在提交之前在設備上徹底測試應用。 – hotpaw2

相關問題