既存アプリがiPhone Xでどう表示されるか、とりあえず確認する

11月3日に発売されるiPhone Xで、自分のアプリが動作するのか?どのように表示されるのか?

すぐ手に入るか分からない実機は待てないので、Simulatorで確認するのが正しい方法ですがiPhone XのSimulatorを動作させるためにはXcode9の利用が必要です。
しかし、Xcode9でビルド行うとSwift3.2からデフォルトなので、既存アプリではビルドが通らない場合があります。 また、ビルドが通ってもiPhone X用にビルドされてしまうため、既存アプリがそのままiPhone Xでどのように動作するかの確認になりません。

そこで、Xcode8.xでビルドしたSimulator用バイナリをXcode9.xのiPhone XのSimulatorに突っ込んで動作させてみます。

既存サンプルアプリ作成

  • Xcodeの新規プロジェクトのウィザードで作成できるタブのプロジェクト「TabSample」で試します。
  • ただ作成して実行しただけです。ホームにアイコンも並びアプリも起動します。
ホーム(iPhone7) 既存アプリ(iPhone7)
f:id:yuichilo:20171029123955p:plain:w350 f:id:yuichilo:20171029124003p:plain:w350
  • Simulator用バイナリは以下のディレクトリに生成されます。
~/Library/Developer/CoreSimulator/Devices/<デバイス>/data/Containers/Bundle/Application/<アプリ>/TabSample.app

<デバイス>と<アプリ>ところは以下のように英数字で分かりにくいため、ディレクトリの更新日時でソートすれば直近のデバイス、アプリを特定できます。

~/Library/Developer/CoreSimulator/Devices/572FF8A8-CEE9-4C7D-98ED-A067379A23E0/data/Containers/Bundle/Application/E949B5F7-69F2-49F3-B9ED-0529F71CF832/TabSample.app

あとは、Application配下の「E949B5F7-69F2-49F3-B9ED-0529F71CF832/TabSample.app」を丸ごとiPhone XのSimulatorの同じApplicationディレクトリ配下にコピーするだけです。

iPhone X Simulatorにコピー

以下のように「TabSample」をiPhoneXのSimulatorにコピーしてSimulatorを再起動するとホーム画面にインストールされた状態となり起動できます。

ホーム(iPhone X 既存アプリ(iPhone X
f:id:yuichilo:20171029125423p:plain:w350 f:id:yuichilo:20171029125418p:plain:w350

これでiPhone X対応を行わない既存のアプリがiPhone Xでどのように表示されるのかが確認できます。
噂通り、上下に黒い帯が表示され既存のレイアウトは崩れなさそうです。
動作も多分問題ないのでしょう。(ハードウェアに依存する機能は影響の可能性あり)
細かな点としては、この状態でもアプリの角は丸びを少し帯びています。

Xcode9.x (Swift3.2)でビルドした場合

ちなみに今回のコピーした既存アプリをXcode9でビルドすると以下のような違いになります。

既存アプリ(Xcode8ビルド) 既存アプリ(Xcode9ビルド)
f:id:yuichilo:20171029125418p:plain:w350 f:id:yuichilo:20171029130436p:plain:w350

SafeAreaなどの考慮はしていませんが、上下がiPhone Xに最適化されているようです。