Skip to main content
すっさんぽ
  1. Posts/

Xcodeのバージョンを上げずに、新しいOSが入った端末でデバッグする方法(iPhoneのOSをアップデートしちゃったあと)

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 12 以降であれば、

The run destination [端末名] is not valid for Running the scheme ‘[スキーム名]’.

The run destination 端末名 is not valid for Running the scheme 'スキーム名'

端末名 (unsupported OS version)

端末名 (unsupported OS version)

こんなエラーが表示されることがあります。

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

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

そこで、今回紹介する 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を使い慣れない人もいるかも知れませんが、今回はダウンロードするだけなので比較的簡単だったかなと思います。 毎年、OSやXcodeのバージョンアップに対応するのは大変ではありますが、できる限りキャッチアップしていきたいものです。