Xcodeのバージョンを上げずに、新しいOSが入った端末でデバッグする方法(iPhoneのOSをアップデートしちゃったあと)
Table of Contents
iPhoneやiPadのアプリをXcodeで開発している際、シミュレーターでなく実機でデバッグしたくなることがあると思います。ところが、OSの自動アップデートを有効にしていたり、β版のOSを入れていたりすると、Xcodeが端末のOSに対応していない旨のエラーが表示され、デバッグできない場合があります。今回は、Xcodeのバージョンを上げなくても、新しいOSがインストールされたiPhoneやiPadの実機でデバッグする方法を紹介します。
Xcodeから端末にインストールできない! #
新しいOSをインストールした端末でデバッグしようとすると、以下のようなエラーが表示されてインストール出来ないことがあります。
Could not locate device support files
もしくは Xcode 12 以降であれば、
The run destination [端末名] is not valid for Running the scheme ‘[スキーム名]’.
端末名 (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のバージョンアップに対応するのは大変ではありますが、できる限りキャッチアップしていきたいものです。