LoginSignup
14
13

More than 1 year has passed since last update.

Xcodeのバージョンを切り替える (ついでに共存)

Last updated at Posted at 2016-09-23

うっかりXcode8でビルドしてみたら、使ってるライブラリが、まだXcode8(iOS SDK10)に対応してなかったっぽいので、ひとまずXcode7環境に戻してみたら、色々とハマったので、メモです。

2022/9/28追記

今はXcodeの複数バージョンの共存には、xcodesという便利なコマンドラインツールが使えます!
aria2を使った高速ダウンロード&インストールや、一覧・切り替え・削除などが簡単にできます。

brew install robotsandpencils/made/xcodes aria2
xcodes installed
xcodes list
xcodes install 14.0.1
xcodes select 13.4.1

(DeviceSupportの最新OSのコピーも簡単にできるといいなぁ。)

AppStoreでXcodeを入れないようにしましょう

自動でアップデートされるので、最新版を置いておくにはいいかなと思ったのですが、xcode-selectで選ばれてるディレクトリの中身を勝手にアップデートしてしまうようです…😇

新しいXcodeを使う前に

storyboardなどは、一度Xcodeで編集すると、古いXcodeで開けなくなるので、必要なものは全てcommitしておきましょう。(まあ本当なら当たり前なのですが…)

Xcode7のインストール

  • Xcode7.3.1のダウンロード
    • 1時間くらいかかります
  • 一応Xcode8を削除(ゴミ箱に入れて再起動)
    • どうせ共存させるなら、そのままでもいけるかも??
  • dmgがマウントできませんエラーが起きた場合
    • ダウンロードに失敗してた(サイズが微妙に小さかった)ので、再度ダウンロード
  • XcodeをApplicationsにドラッグでコピーしようとすると、なぜか弾かれる
    • 原因不明。コマンドラインでインストール (ついでに名前をXcode7.3.1にして、Xcode8と共存できるようにしておきます)
sudo /usr/bin/ditto /Volumes/Xcode/Xcode.app /Applications/Xcode7.3.1.app
cp -R /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.* /Applications/Xcode7.3.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/

Carthageを使ってる場合

  • carthage updateでCommand Line Toolsがないよエラーが出る
    • 指示に従ってCommand Line Toolsをインストール
    • 名前をXcode7にしたので、そちらにパスを通す
sudo xcode-select --switch /Applications/Xcode7.3.1.app/Contents/Developer/
  • モジュールが新しいswiftでコンパイルされてるよエラーが起きた場合
    • "Module file was created by a newer version of the compiler"
    • Xcode8にしてから、CarthageでRealmモジュールをビルドしちゃうと起こるようです
    • XcodeでプロジェクトをCleanする (Cmd + Opt + Shift + K)
    • 普通にcarthage updateしてもまだエラーが残るようなら、Carthageのモジュールをクリーンビルド (かなり時間かかりますが、これで解決しました)
rm -rf ./Carthage/
rm -rf ~/Library/Developer/Xcode/DerivedData/
carthage update --platform iOS --no-use-binaries

Storyboard問題

  • Xcode8で編集したMain.storyboardが開けないよエラー
    • Xcode7時点のものがcommitしてあれば、discardして元に戻す
    • 最悪、Main.storyboardをテキストで開いて、minToolsVersionを8から7に書き換えると、運良く開けることもあるようです

複数のXcodeバージョンの共存

最新の安定版は、AppStoreでインストールして自動アップデートされるようにし、それ以外のバージョンは名前を変えて入れるのがよさそうです。

  • 最新の安定版Xcodeは、AppStoreから入れる (/Applications/Xcode.app/)
  • 古いXcodeは名前を変えて入れる (/Applications/Xcode7.3.1.app/ など)
  • ベータ版のXcodeも名前を変えて入れる (/Applications/Xcode8.2b2.app/ など)

Command Line Toolsのバージョンは、xcode-selectで切り替えます。グローバルに変更されちゃうので、若干面倒ですね。

14
13
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
14
13