17
私は同じコードとビューの95%を共有する2つの異なるアプリケーションを開発しています。 Xcodeを使ってこれを行う最善の方法は何ですか?Xcodeの同じ共有コードから複数のアプリケーションを作成するには?
私は同じコードとビューの95%を共有する2つの異なるアプリケーションを開発しています。 Xcodeを使ってこれを行う最善の方法は何ですか?Xcodeの同じ共有コードから複数のアプリケーションを作成するには?
ターゲットを使用します。それがまさに彼らのためのものです。
Learn more about the concept of targets here。
通常、プロジェクトの大半には1つのターゲットがあり、これは1つの製品/アプリケーションに対応しています。あなたが複数のターゲットを定義する場合、次のことができます。
たとえば、あなたはその後(の「LiteVersion」ターゲットでLITE
マクロを定義するには、ターゲットに「PremiumVersion」とOTHER_C_FLAGS = -DLITE
をOTHER_C_FLAGS = -DPREMIUM
を言わせて)他とのための1つの目標と他のマクロのプリコンパイラマクロを定義することができあなたのソースに同様のコードを含めてください:
-(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