2011-04-14 59 views
15

實際上,我的iOS應用程序在同一個項目中包含多個版本,在靜態類中使用#define更改。iOS的多個版本的應用程序

例:

#import "AppVersion.h" 

//... 

if (MYAPP_VERSION == kMyAppVersionFree) { 
    //Limited features 
} 
else if (MYAPP_VERSION == kMyAppVersionFull) { 
    //No limit ! 
} 

每次我想要編譯,我不得不修改我的代碼更改的#define MYAPP_VERSION,並更改項目名稱,才能夠釋放出「MyApp的」和「MyApp的自由」的可執行文件...

問:

是否有可能將其定義爲一個「編輯變量」? 我不想編輯我的代碼,每次我想要編譯2個版本

如何創建2個項目,使用完全相同的源代碼(許多類),但使用不同的應用程序名稱和不同的信息.plist(和相對於上一個問題,不同的「編譯變量」)?

我要求不同的info.plist,因爲我的「免費版,」不支持iTunes的文件共享,但我的「完整版」呢?

我不知道如果我解釋這個問題很好......(對不起我的英文......)

有什麼想法嗎?你如何管理項目中的版本?

在此先感謝

回答

22

您需要爲各種版本定義目標。

單擊項目的根目錄(藍色xcode圖標)。你會在一個表格中看到你的項目設置。在左邊你會看到一個「TARGETS」標題,帶有一個孩子,你的項目名稱。

您可以右鍵單擊目標並複製它。一旦你有一個重複的,你可以重命名它,然後分別配置它的設置。其中一個項目設置是GCC預處理器值。您可以根據您的目標定義LITE或FULL變量,然後在代碼中使用#ifdefs進行條件編譯。

您可以爲不同的目標添加不同的pList文件。只需右鍵單擊pList文件幷包含或排除每個目標文件。

+0

完美,這是如此簡單......謝謝! – ingham 2011-04-14 12:50:42

+0

@ingham沒問題:) – RedBlueThing 2011-04-14 21:55:01

+1

Xcode 4的外觀如何?你如何讓Xcode通過構建特定的目標來構建或存檔應用程序? – dontWatchMyProfile 2011-12-10 12:47:34