iOS シミュレータ徹底解説

iOS シミュレータを使うと、iOS デバイス実機を使わなくても、Mac 上で制作中 iOS アプリを実行できます。ここでは iOS シミュレータがどういったものかと、その扱い方について詳しく見て行きます。

iOS シミュレータに用意されている機能

iOS シミュレータには、アプリ制作を支援する機能がいくつか搭載されています。

シミュレータの表示サイズを切り替える

iOS シミュレータのウィンドウは、見た目上のサイズを変更できます。

iOS シミュレータをデスクトップ上に小さく表示させておきたいという理由ももちろんですが、iPad アプリのように広い画面を扱うアプリの制作や、もはや標準になりつつある Retina ディスプレイの iPhone では、そもそも Mac の画面に表示しきれないということもよくあります。


そのようなとき、メニューバーの ウインドウ表示サイズ から、iOS シミュレータの表示倍率を小さく調整すると便利です。もちろん、シミュレータ内の iOS アプリには何も影響しません。

Settings - iOS

ここで選択できる表示サイズは100%のほかに75%50%の全部で 3 種類になります。

ここで100%というのは、iOS シミュレータの 1 ピクセルを Mac の 1 ピクセルで表示させたサイズです。Retina ディスプレイを想定した iOS シミュレータの場合は解像度が倍になるので、Mac 上でのウィンドウサイズも倍になります。

ただし Mac が Retina ディスプレイの場合は、Retina 用のiOS シミュレータは 2 倍のスケールで画面描画されるので、Mac 上での見た目のウィンドウサイズは同じで、シミュレータ内の画面はきめ細やかな表示になります。

iOS シミュレータを 100% で表示した場合 iOS シミュレータを 75% で表示した場合

なお、iOS シミュレータには、基本的には画面の外回りに実際の筐体をイメージしたフレームが描画されます。画面のサイズが十分でない場合や、表示倍率を 100% 未満にしている場合は、タイトルバーと画面領域だけのシンプルなウィンドウになります。

iOS シミュレータの種類と OS を切り替える

実際の iOS デバイスには、次のような特徴の要所があります。

項目 内容
機種 デバイスの機種によって利用できる機能が異なります。
対応 OS デバイスによって実際に動かせる iOS のバージョン範囲が異なります。
画面解像度 デバイスの画面サイズによって表示できるピクセル数が異なります。
CPU デバイスによって 32-bit の CPU が搭載されている場合と 64-bit が搭載されている場合があります。

これらの違いに適応した iOS アプリを作れるように、iOS シミュレータでもこれらの環境それぞれをシミュレートできるようになっています。

シミュレートする機種と OS を切り替える

iOS シミュレータでシミュレートする機種と OS を切り替えたい場合は、メニューバーの ハードウェアデバイス から、目的の機種と、それが対応する OS のバージョンを選択します。

このようにすることで、使用する iOS シミュレータの種類を切り替えられます。

このように機種と OS バージョンを選択して切り替えることで、現行の iOS デバイス全ての環境を想定した動作検証が行えます。なお、機種や OS を変更すると、変更前の iOS シミュレータ上で動作していたアプリは強制終了されます。

iOS シミュレータの機種が実際のどれに該当するかはXcode 5 徹底解説 for iOS/OS XA.2.3 iOS シミュレータとデバイスの対応表に整理しておきます。

iOS シミュレータでは、これらの機種と OS バージョン毎に分けて設定を保存しています。インストールされているアプリやデータ、iOS の環境設定などはそれぞれで独立しているので、他の環境に影響を与えることなく動作検証を行えます。

表示されている画面をコピーする

iOS シミュレータの画面に表示されている内容は、画像データとして Mac に取り込めます。

たとえば、iOS シミュレータで標準のマップアプリを使っていて、この画面を Mac のクリップボードにコピーしたい場合は、メニューバーから 編集画面をコピー を選択します。

または、デスクトップに画像ファイルとして保存したい場合は ファイルスクリーンショットを保存 を選択します。

このようにして保存されたファイルは、iOS シミュレータのフレームを除いた画面全体の画像になります。

クリップボードのデータを受け渡しする

iOS シミュレータには、Mac とクリップボードのデータを交換する機能が、メニューバーの編集の内に用意されています。

項目 内容 ショートカット
コピー iOS シミュレータ上のクリップボードを Mac 上のクリップボードにコピーします。 C
ペースト iOS シミュレータ上のクリップボードに Mac 上のクリップボードをペーストします。 V

コピーとペーストというおなじみの機能名がつけられていますが、普段のそれらとは少し違って、iOS シミュレータと Mac との間のクリップボード間のデータの受け渡しになります。


そのため、iOS シミュレータ上のテキストフィールドに、Mac 上の Web ブラウザーに表示されているテキストを貼り付けたい場合には、まず、Mac 上の Web ブラウザーでテキストをコピーしたら、iOS シミュレータでペーストを実行します。

そうすると iOS シミュレータ内のクリップボードにテキストが転送されるので、iOS シミュレータを操作して、テキストフィールドにテキストをペーストします。

逆も同様で、iOS シミュレータ内でコピーをしたら、iOS シミュレータでコピーを実行して、Mac 上のエディターなどにペーストします。

外部ディスプレイ出力をシミュレートする

iOS デバイスには、セカンドモニターを接続して映像を映す機能があります。iOS シミュレータでも、その機能を Mac 上で再現する機能が用意されています。

iOS シミュレータで外部ディスプレイ出力用のウィンドウを表示するには、メニューバーで ハードウェア外部ディスプレイ とたどって、その中から出力したい画面のサイズを選択します。

こうすることで、外部ディスプレイ出力用のウィンドウが表示されます。

このウィンドウで表現されたディスプレイは iOS シミュレータに接続された状態になっていて、iOS シミュレータから出力先として利用できるようになっています。

外部ディスプレイ出力をシミュレートすると、アプリ内では+[UIScreen screens]メソッドを使ってこのスクリーンを取得できます。たとえばこのスクリーンをUIWindowのインスタンスに割り当てると、シミュレートされたディスプレイにそのウィンドウが出力されます。