どもも。Reoです。
先日Xcode9とSwift4にアップデートして、その弊害(参照: 【Swift】Xcode9+iOS11でUINavigationBarが正しく表示できなくて困った話)が出たので、現在はXcode8を使っています。
このときXcode-betaとXcode8を入手したので、現在私のPCにはXcodeがbetaと8と9の3つ入っています。
Xode-betaを入れた時点でターミナルで
sudo xcode-select -switch /Applications/Xcode-beta.app/Contents/Developer
と使うXcodeを切り替えていたことをすっかり忘れていました。
特に何も困ることがなかったので、気にせずそのままXcode-betaを選択したまま、Xcode8を使っていました。
CarthageでAlamofireを入れていたんですが、この状態でCarthageのupdateを行うと・・・
Module compiled with Swift 4.0.1 cannot be imported in Swift 3.1 /User/...
というエラーが出ました。
これむしろ逆の方でよくあるエラーで、Swift3で書かれたプロジェクトをSwift4にconvertするときに出ました。
Swift3 -> Swift4のときは
carthage update
をしてやるだけでSwift4に対応することができました。
んで今回。
Xcode8+Swift3でやっているのにも関わらず
xcode-select -print-path
で選択されているXcodeをみてみると
/Applications/Xcode-beta.app/Contents/Developer
とXcode-betaが選択されていることになっていました。
この状態でcartageをupdateすると上記エラーになるので、xcodeを選択し直してやります。
sudo xcode-select -switch /Applications/Xcode8.app/Contents/Developer
これで、
carthage update
をしてあげればおkです。
プラットフォーム指定の方も
carthage update --platform iOS
Xcodeを複数入れている場合、
どうでもいいけどXcode-betaいれてからビルド時のアイコンがベータのやつになったんだけど
てっきりこれもxcode-selectで指定されたやつが出てくると思ったんだけど、直してもベータのままだったよ・・・・。PC再起動したら戻るんだろうか・・・・。
ではでは。
参考リンク
Additional Notes追記
そういえば・・・と思って見てみたらXcodeのアイコンBetaじゃなくなってた。 いつのまに。
コメントはありません。
現在コメントフォームは工事中です。