1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

古いバージョンのXcodeと最新バージョンのiOSの組合せでデバッグ実行する方法(シミュレータ&実機)

Last updated at Posted at 2021-02-14

解決したい課題

古いバージョンの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を選択し、シミュレータを起動します。
qiita20210214.png

3.Dockのシミュレータを右クリックし、動作させたいバージョン/デバイスのシミュレータを起動します。
スクリーンショット 2021-02-14 11.13.36.png

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の組み合わせでは上手くいきませんでした。今後もそういうケースはあるかも…
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?