iPhoneやiPadのアプリをXcodeで開発している際、シミュレーターでなく実機でデバッグしたくなることがあると思います。ところが、OSの自動アップデートを有効にしていたり、β版のOSを入れていたりすると、Xcodeが端末のOSに対応していない旨のエラーが表示され、デバッグできない場合があります。今回は、Xcodeのバージョンを上げなくても、新しいOSがインストールされたiPhoneやiPadの実機でデバッグする方法を紹介します。

Xcodeから端末にインストールできない!

新しいOSをインストールした端末でデバッグしようとすると、以下のようなエラーが表示されてインストール出来ないことがあります。

Could not locate device support files

Could not locate device support files

これは、アプリをビルドしているXcodeが、端末のOSバージョンに対応していないことを表示しています。 こうなると、デバッグはキャンセルせざるを得ません。

取りうる対応としては、Xcodeをアップデートすることなのですが、Xcodeのバージョンを上げてしまうと、とくにXcode 11に上げると、さまざまな仕様変更に対応しなければならなかったり、使用しているライブラリのアップデートをしなければならなかったりと、面倒なことが多いです。

そこで、今回紹介する Device Support を持ってくるという方法です。

1.「Device Support」をダウンロードする

以下のGitHubリポジトリにアクセスし、端末のOSバージョンのデバイスサポートをダウンロードします。
https://github.com/filsv/iPhoneOSDeviceSupport

今回は、iOS 13.1のDevice Supportをダウンロードしました。 zipファイルがダウンロードされるので、展開しておきます。

あと、Xcodeは「終了」しておいてください。

2. Device Supportを、Xcodeのディレクトリに置く

先程展開しておいたフォルダを、以下のディレクトリに配置します。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/

※ 複数のXcodeをインストールしている人は、使いたいバージョンのXcodeディレクトリに置きます

たったこれだけです!かんたん!


付録. まとめてスクリプトで実行する

こういうときは「ターミナル」を使ったほうが楽なことが多いので、サンプルとしてスクリプトを書いてみます。

cd ~/Downloads
unzip 13.1.zip
mv 13.1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/

上の「13.1」のところがバージョンなので、それを書き換えればオッケーです。


まとめ

今回は、Xcodeのバージョンを最新のものにしなくても、新しいOSをインストールした実機でデバッグ可能になる方法を紹介しました。 GitHubを使い慣れない人もいるかも知れませんが、今回はダウンロードするだけなので比較的簡単だったかなと思います。 毎年、OXやXcodeのバージョンアップに対応するのは大変ではありますが、できる限りキャッチアップしていきたいものです。