シミュレーター用にビルドしているか、デバイス用にビルドしているかに基づいて、アプリで条件付きでコンパイルできる方法はありますか? (私のアプリは外部サーバーにフックします。デバイスで実行している場合は、localhost に接続したいのですが、デバイスで実行している場合は、実稼働サーバーに移動したいと考えています。)
検出できる #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"));