今開発を行っているアプリが様々な要因で新しいXcodeを使えなかった時、古いXcodeが対応していないiOSが入ったiPhoneは使えないのか?と思うかもしれませんが、実は対処方法があります。
iOS16以下
IOS16以下ではDeveloperDiskImageというのをXcode内に配置することで可能です。ファイルと配置方法は以下のリポジトリを参照してください。iOS16.6まで取得できます。(iOS16.7はまだ用意されていません。)
iOS17
iOS17以上ではDeveloperDiskImagesは使われず、「CoreDevice」という仕組みが使われています、これはプラットフォーム毎に管理され、新しいXcodeをインストールすることで更新されるようになっています。
CoreDeviceを有効にするには以下のコマンドを叩きます。
defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled
これで、Xcodeの最新版をインストールすると、古いXcodeでもサポートが追加されます。
また、CoreDeviceのサポートはXcode 14.3以上となっているようですので、Xcode 14.2以下でしか動かない場合は頑張ってアップデートしましょう。
参考資料:
https://developer.apple.com/forums/thread/730947
https://stackoverflow.com/questions/76412754/how-to-run-on-ios-17-device-using-xcode-14