17
我正在開發2個不同的應用程序,它們共享95%的相同代碼和視圖。使用Xcode的最佳方式是什麼?如何從Xcode中的相同共享代碼創建多個應用程序?
我正在開發2個不同的應用程序,它們共享95%的相同代碼和視圖。使用Xcode的最佳方式是什麼?如何從Xcode中的相同共享代碼創建多個應用程序?
使用目標。這正是他們的目的。
Learn more about the concept of targets here。
通常,大多數項目都有一個目標,它對應於一個產品/應用程序。如果定義多個目標,您可以:
例如,你可以定義預編譯宏的一個目標和其他宏爲其他(假設OTHER_C_FLAGS = -DPREMIUM
靶「PremiumVersion」和OTHER_C_FLAGS = -DLITE
來定義「LiteVersion」目標LITE
宏),然後在您的源代碼中包含類似代碼:
-(IBAction)commonCodeToBothTargetsHere
{
...
}
-(void)doStuffOnlyAvailableForPremiumVersion
{
#if PREMIUM
// This code will only be compiled if the PREMIUM macro is defined
// namely only when you compile the "PremiumVersion" target
.... // do real stuff
#else
// This code will only be compiled if the PREMIUM macro is NOT defined
// namely when you compile the "LiteVersion" target
[[[[UIAlertView alloc] initWithTitle:@"Only for premium"
message:@"Sorry, this feature is reserved for premium users. Go buy the premium version on the AppStore!"
delegate:self
cancelButtonTitle:@"Doh!"
otherButtonTitles:@"Go buy it!",nil]
autorelease] show];
#endif
}
-(void)otherCommonCodeToBothTargetsHere
{
...
}
如果您習慣了它,請將目標視爲不同的生成文件。他們有相同的角色。 – Cyrille
這很大,謝謝。爲了讓這真的適合我,我需要做一個複製目標,然後更新目標設置,以使用不同的Info.plist作爲我的軟件包名稱等... – Slee
請注意,如果您進一步向項目添加文件,小心將文件添加到兩個目標中,而不僅僅是活動的文件:在添加文件時,在出現詢問是否要複製文件等的對話框中,每個目標和複選框都有一個列表。 (複選框狀態已保存,因此您可能需要僅檢查一次) – AliSoftware