Xcode 7 の iOS シミュレータでは iOS7 以前の iOS を動作させることができません (iOS 8.1 以降のみ)。
実機で動かすのがもちろん確実ですが、その分端末を用意する必要があります。とりあえず、ざっくり iOS7 で動作確認したいというときにはシミュレータで確認できると楽です。
Xcode は異なるバージョンを共存させることができるので、iOS7 での動作確認するときには Xcode 6 でビルドする方法もあります。しかしこの方法だと Xcode 6 では iOS9 に対応できず、iOS9 SDK 向けのコードでビルドに失敗したりします。
ということで、Xcode 7 でビルドしたアプリを iOS7 上のシミュレータにインストールできればいいわけです。
用意するもの
- Xcode 6
- Xcode 7
- ターミナルアプリ
手順
-
Xcode 7 でアプリをビルドする。Xcode 7 を使うのはここだけ
-
Xcode 6 を立ち上げて、シミュレータを起動する
-
シミュレータで利用したいデバイスに切り替える (例えば、iOS 7.1 iPhone 5s)。
この手順は飛ばしてもいいんですが、#5 でアプリをシミュレータにインストールが楽になります。 -
xcode-select
コマンドで Xcode 6 に切り替える$ sudo xcode-select -s /Applications/Xcode6.app/
ここでは
/Applications/Xcode6.app/
としていますが、Xcode 6 のパスを指定します。
xcode-select
コマンドは通常sudo
で実行する必要があると思います。El Capitan では未確認。 -
simctl
コマンドを使って #1 でビルドしたアプリをインストーリします。$ xcrun simctl install booted ${APP_PATH}
ここで
${APP_PATH}
は #1 でビルドしたアプリのパスです。この探し方については後述。
booted
は現在起動中のシミュレータを指定するオプションです。booted
の代わりにシミュレータにインストール済みのデバイスを UUID で指定することもできます。 -
インストールしたアプリをシミュレータ上で起動します。
シミュレータで動作確認した後は xcode-select コマンドを再度実行して Xcode 7 に戻しておくことを忘れずに……。
$ sudo xcode-select -s /Applications/Xcode.app/
ビルドしたアプリがどこにあるのかを調べる方法
特にビルド場所について設定していなければ、Window メニューから Projects ウィンドウから確認できます。
-
Xcode (Xcode 6 でも Xcode 7 でもどちらでも大丈夫) の Window メニューから Projects ウィンドウを開きます。
-
プロジェクトリストからターゲットのプロジェクトを選択します。
Derived Data の矢印をクリックすると、該当箇所を Finder で開くことができます。
-
Build → Products → ターゲット (例えば、Debug-iphonesimulator) とたどります。