⛑️

Xcode 14.3.1からiOS 17の実機にビルドインストールする方法

2023/07/14に公開

手順

従来のDeveloper Disk Image(DDI)を再配置する方法がiOS 17よりできなくなりました。

代わりに、以下のコマンドをターミナルで実行して、Xcode 14.3.1を起動します。

CoreDeviceとDDIを更新するために、Xcode 15のインストールは必須となります。ご注意ください。

defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled

すると、(CoreDevice)と付いたデバイス名が表示されて選択できるようになります。

簡単になりましたね。

環境: macOS Ventura 13.4.1, Xcode 14.3.1, Xcode 15 beta 4

CoreDeviceとは?

CoreDeviceとは、iOS 17以降のデバイスとの通信に使用される新しいデバイススタックです。

CoreDeviceとでは、(OSリリースごとではなく)プラットフォームごとに1つのDDIがあり、この同じデバイススタックは、システム上のXcodeで共有され、Xcodeの新しいバージョンをインストールすると、CoreDeviceとそのDDIが更新されます(CoreSimulatorが更新される方法と同じ)。

よって、最新のCoreDeviceとDDIをインストールするためには、最新のXcodeを最初にインストールする必要になることがあるそうです。

背景

これまで、最新のバージョンのXcodeから Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport に配置されたDDIを古いXcodeの同じ場所にコピーすることで、前のバージョンのXcodeからも最新OSのデバイスにビルド・インストールができていました。

しかし、Xcode 15から Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport にiOS 17用のバイナリが消えてしまいました。

もうできなくなってしまったのかと困っていたところ、先述の方法が、こちらのスレッドで投稿されていました。

https://developer.apple.com/forums/thread/730947

当初はもうできないのかと思いましたが、CoreDeviceが導入された結果だとわかりました😌

Discussion