Xcodeで実機とシュミレーターで処理を分けたい時の対応


Xcodeで実機では実行せずシュミレーターでのみ処理させたいコードがある場合、下の#if文内でその処理を書けば良い。

#if arch(i386) || arch(x86_64)
// シュミレーターでのみ実行
#endif

arc(i386):32bitのMac(シミュレータ)用のビルド
arc(x86_64):64bitのMac(シミュレータ)用のビルド

RealmのDefault Pathは、アプリがインストールされた場所の配下に配置される。
iOSシュミレーターで実行中のアプリのパスが長くて分かり辛かったので、RealmのDefault Pathをアクセスしやすい場所に変更して実行している。
ただし、実機上のDefault Pathは初期値で良いため、うまく切り替えられないか模索していた。
下のサイトで、シュミレーターの場合のみ実行する方法を見つけたので、それにならってみたら実現できた。

参考
SwiftでiOSシミュレータのときだけAFNetworkActivityLoggerを使う

あわせて読みたい

コメントを残す