2011-09-13 78 views
11

我有一個iPhone應用程序,它目前在應用程序商店中。我想要製作完全相同的應用程序,但免費且具有廣告功能。將目標添加到Xcode項目

我的計劃是有效地複製項目,創建一個新項目並將廣告添加到代碼中並作爲單獨的應用程序發佈。然而,有人提到最好的解決方案是將額外的目標添加到現有的應用程序中,在運行時提供兩個二進制文件。

似乎對我來說是一個很好的解決方案,但是我對如何改變代碼以將廣告內置到新目標中並保持原始狀態不變感到有點困惑?

回答

7

我跟着this教程,雖然老了,基本上是對的Xcode 4相同的我複製目標和P列表,確保我能夠有改動運行它,並沒有影響到完整版本的目標。

然後我複製了不同的.xib文件。如果您在項目設置下查看,可以在某處找到允許您選擇包含哪些資源的列表。 lite版本中包含lite版本的xib,以及完整版本分別包含在完整版本中。然後你將能夠編輯每一個而不影響其他。

圖標和圖像可以用同樣的方法改變。只需創建精簡版版本圖標集或其他圖像集,並將精簡版圖標包含在精簡版目標的資源設置中,而不是完整版的圖像。

此外,您將需要創建一些預處理器宏。在構建選項卡中查找它們,併爲每個預處理選項 - 調試,分發和發佈創建一個名爲LITE_VERSION的宏(或者任何你想要的,它並不重要)

允許您在同一個.h和.m文件中添加不同的代碼。只需使用

#ifdef LITE_VERSION 
// Lite version only code here 
#endif 

將兩者分開。您也可以使用#ifndef LITE_VERSION僅向完整版添加代碼。

就是這樣!完成上述所有步驟後,您應該能夠編輯lite版本的.xib文件,僅將代碼放入Lite或完整版本,併爲每個文件分別提供不同的圖像和圖標。

+0

謝謝。我將通過該教程。讚賞。 –

+1

在Xcode 4下,看起來不同,不幸的是,互聯網上的所有文章和博客文章似乎都是指Xcode3。在Xcode 4下,當您複製目標時,info.plist文件不會自動被複制,而且我可以找到一種方法來生成兩個單獨的工作plist文件,每個目標文件一個。 –

+0

我無法弄清楚如何自動完成,但是複製第一個並重命名它並不難。 –

2

XenElement的答案是正確的。但你應該看到最好的做法。你應該有一個標識符類來檢查目標。如果你在代碼中的任何地方使用宏,它對你和其他開發者來說似乎也不會有好處。在this little blog post中,您可以看到如何創建這種類型的標識符類並學習一些關於xcode中的目標的最佳實踐。

0

我跟着這個Just2us: How to create multiple targets for Xcode iPhone Projects教程。

我決定用Stu的線索更改第3步,在付費版本中明確設置FULL_VERSION。

「爲了解決沒有意外的關注LITE​​_VERSION定義爲宏預處理器(從而釋放出一個完整版意外),我把這個代碼小片段在頭文件(它只是需要某處代碼庫,只要確保是共同的所有配置)「:

#ifndef LITE_VERSION 
    #ifndef FULL_VERSION 
     #error You probably forgot to specify if this is the Lite or Full version of the app 
    #endif 
#endif 

PS:我寫上面右邊的代碼在AppDelegate中的#進口後。