解決したい課題
古いバージョンのXcodeでは、最新バージョンのiOS環境でのデバッグは基本的にできません。
例えば、本記事の執筆時点では Xcode 12.4 / iOS 14.4 が最新ですが、アプリを Xcode 12.1 で開発しているとします。
この場合、以下の制約があり、基本的には Xcode 12.1 で iOS 14.4 での動作確認は不可です。
- Xcode 12.1 では基本的に iOS 14.1 までのシミュレータしか入れることができません。
- Xcode 12.1 では基本的に iOS 14.1 までの実機としか繋げることができません。
これを可能にする方法が本記事の内容です。
ただし、公式に認められている方法ではないので(たぶん)、使用する際は自己責任でお願いします。
シミュレータの場合
事前準備
1.Xcode最新バージョンを普通にApp Storeからインストール。
2.Xcode旧バージョンは以下のリンクからダウンロードしてインストール。
https://developer.apple.com/downloads/
※Apple Developer Programへの登録が必要です。
※複数バージョンがインストールされている場合、その切り替えの都度コマンドをたたく必要があります。
(参考記事)
https://qiita.com/y-some/items/849f15aa09c3b89ea324
Xcodeバージョン管理ソフトを使う手もあるようですが、私は実際に使ったことがないので本記事では割愛します。
動作確認手順
1.Xcode最新バージョンを起動します。
ただし、プロジェクトを開く必要はなく、「Welcome to Xcode」の画面で止めて良いです。
2.DockのXcodeを右クリックし、Open Developer Tools > Simulatorを選択し、シミュレータを起動します。
3.Dockのシミュレータを右クリックし、動作させたいバージョン/デバイスのシミュレータを起動します。
4.Xcode旧バージョン起動し、プロジェクトを開きます。
これで、シミュレータのリストに最新iOSのシミュレータが表示されいてるはず!
実機の場合
事前準備
1.実機のiOSを最新バージョンにアップデートしておきます。
2.以下のリポジトリから1のバージョンのzipファイルをダウンロードします。
https://github.com/iGhibli/iOS-DeviceSupport/tree/master/DeviceSupport
3.zipを解凍し、中身を以下のフォルダにコピー。
アプリケーション > Xcodeを右クリック > パッケージの内容を表示 > /Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 配下
これで、最新iOSの実機とつなげてデバッグできるはず!
<補足>
- 証明書/プロビジョニング・プロファイルが正しく設定されている必要があります。
- 過去に、Xcode 11 / iOS 14の組み合わせでは上手くいきませんでした。今後もそういうケースはあるかも…