私は、シミュレータやデバイスのために構築してるかどうかのXcode iPhoneプロジェクトで検出?
質問
私は条件付きで私は、シミュレータやデバイスのために構築してるかどうかに基づいて私のアプリにコンパイルすることができます方法はありますか? (外部サーバへマイアプリフック:私は、デバイス上で実行している場合、私はローカルホストに接続したい。私は、デバイス上で実行している場合、私は私の本番サーバーに行きたい。)
私は検出、あるいは実行時に何かすることができますいくつかの#ifdef変数を探しています...重要ではありません。
感謝します。
解決
#if !(TARGET_IPHONE_SIMULATOR)
、あるいは、
#if (TARGET_OS_IPHONE)
あなたは、デバイス上で実行している場合を教えてくれます。それが動作するためには、あなた必要があります。
#include "TargetConditionals.h"
あなたはここを見つけることができますファイル。
他のヒント
私はあなたが内部の括弧を実行したいアクションを指定することができ、装置がシミュレートされている場合、これらのアクションのみが実行されるマクロを作成します。
#define SIM(x) if ([[[UIDevice currentDevice].model lowercaseString] rangeOfString:@"simulator"].location != NSNotFound){x;}
これは、このように使用されます:
SIM(NSLog(@"This will only be logged if the device is simulated"));
所属していません StackOverflow