1. ホーム
  2. アイオス

[解決済み】自分のアプリがiphoneシミュレーターで動作しているかどうかをプログラムで判断するには?

2022-03-31 16:33:37

質問

質問にもあるように、主に自分のコードがシミュレータで動作しているかどうかを知りたいのですが、動作している、またはシミュレートされている特定のiphoneのバージョンも知りたいのです。

EDIT: 質問名に「programmatically」という単語を追加しました。私の質問のポイントは、どのバージョン/シミュレータが実行されているかによって、コードを動的にインクルード/除外できるようにすることです。

どのように解決するのですか?

すでに質問されていますが、全く違うタイトルです。

iPhone用にコンパイルする際にXcodeが設定する#defineは?

そこからの回答を繰り返します。

SDK ドキュメントの "Compiling source code conditionally" に記載されています。

関連する定義は TARGET_OS_SIMULATOR で、これは iOS フレームワークの /usr/include/TargetConditionals.h で定義されています。以前のバージョンのツールチェーンでは、書く必要がありました。

#include "TargetConditionals.h"

が、現在の(Xcode 6/iOS8)ツールチェーンでは、これはもう必要ありません。

ですから、例えば、デバイス上で動作していることを確認したい場合は、次のようにします。

#if TARGET_OS_SIMULATOR
    // Simulator-specific code
#else
    // Device-specific code
#endif

は、使用するケースに応じて使い分けてください。