18
5

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のバージョンが古くて最新OSでデバッグできません?

Last updated at Posted at 2017-12-01

Swift愛好会のアドベントカレンダー2日目担当の @toshi0383 です。
小ネタを投下します!

An error was encountered while enabling development on this device

使っているXcodeよりもOSが先に新しくなってしまって、こういうエラーが出ることがあります。
Screen Shot 2017-11-22 at 11.40.04.png

デバイス再起動してとか書いてありますが、単純にXcodeが古くてOSのサポートファイルがないために起きることが多いです。
以下のようにDeviceSupportのディレクトリを見てみると、Xcode9.1には11.1のイメージがありますが、Xcode9.0.1にはないことがわかります。
Screen Shot 2017-11-22 at 11.40.36.png

新しいXcodeをダウンロードしてもいいですが、最近になってもまだちょっとバージョンを上げるとSwiftの互換性がなくなったりするので、単純に11.1のフォルダごとコピーして同じ状態にしてあげましょう。
Xcodeを再起動すると設定が読み込まれて上のエラーが出なくなると思います。

DeviceSupportってどこよ

ただこのDeviceSupportは結構深いところにあるので、探すのが面倒です。
毎回消耗していたので、以下のスクリプトを書きました。
https://github.com/toshi0383/scripts/blob/master/xcode/open-device-support-dir.sh

これを使うと、コマンド一発でインストールされているXcodeそれぞれのDeviceSupportを探して、上記のようにFinder窓をパパッと表示してくれます。

cmdshelfで管理

cmdshelfで管理していると、スクリプトの更新もすぐに反映することができて便利ですね。

$ cmdshelf remote add toshi0383-scripts git@github.com:toshi0383/scripts.git
$ cmdshelf run xcode/open-device-support-dir.sh tvOS

コマンド名の一部しか思い出せないときもcmdshelf listからgrepできます。

$ cmdshelf list | grep device
    xcode/open-device-support-dir.sh

私もさっき思い出せなくて「あーそれそれ。」という感じでした。

自分が何を実行しているのか気になる人はcmdshelf catしましょう。

$ cmdshelf cat xcode/open-device-support-dir.sh | head
#!/bin/bash
OS=${1:-'[a-z]'}
for xcode in `ls -d /Applications/Xcode*.app`
do
    case $OS in
    i[oO][sS])
        dirs="$dirs ${xcode}/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport"
        ;;
    tv[oO][sS])
        dirs="$dirs ${xcode}/Contents/Developer/Platforms/AppleTVOS.platform/DeviceSupport"

まとめ

明日はSwift愛好会のUI番長 @fumiyasac@github が何か書くそうです。
楽しみです!

18
5
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
18
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?