うっかり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
- "Could not find Developer Disk Image" 古いXcodeで、実機のOSの方が新しくて動かない場合
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で切り替えます。グローバルに変更されちゃうので、若干面倒ですね。