Edited at

capybara-webkitの導入指南書(macOS版)

弊社のプロダクトでcapybara-webkit導入してるのですが、

今導入すると躓いているポイントが深いので、

メモしておこうと思います。

https://qiita.com/labocho/items/e12bafbcf7f31ccfb76c

で書かれていますが、Mojaveでqt@5.5が導入できないことが問題で、

この後homebrewから取り除かれ、すべてのmacOSで導入できなくなりました。


何が起きたか


  • capybara-webkitにはqt@5.5に依存


  • qt@5.5はbrewで入れることができた


    • しかしMojaveでqt@5.5が導入できないのでbrewから取り除かれる



  • すべてのmacOSでbrewで導入できずcapybara-webkitがインストールできない

今回はこんな状況でもbrewからqtを入れるようにします


事前準備


Xcodeをインストール

capybara-webkitをインストールする際、アプリのXcodeが必要になります。

Xcode10でもいいのでインストールします。

https://developer.apple.com/jp/xcode/

↑DLはここから

DLしてきたXcodeは/Applications/においてください。


xcodebuildコマンドが通るかチェック

/usr/bin/xcodebuild

Project ERROR: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.

/usr/bin/xcodebuild

xcode-select: error: tool ‘xcodebuild’ requires Xcode, but active developer directory ‘/Library/Developer/CommandLineTools’ is a command line tools instance

↑正常な場合でもエラーが出ます。ややこしいですが上と同じエラー文が出ていたら問題があります。

(下のエラーの場合はXcodeが/Applications/に配置されているか確認してください)

上のエラーが出ているなら以下のコマンドを実行します。

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

(参考:https://qiita.com/Pegasus204/items/1ac470114669d3c4471c)

これでcapybara-webkitインストールできる準備が整いました。


brewからqt@5.5を導入する

https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit#macos-high-sierra-1013-macos-sierra-1012-el-capitan-1011-and-yosemite-1010

こういうときは公式ドキュメントをまず読みましょう。

公式ドキュメントがbrewの削除に更新されていますが

現時点(2018/10/10)ではこれだけでは動かないので

以下のコマンドを実行してください

brew update

cd $( brew --prefix )/Homebrew/Library/Taps/homebrew/homebrew-core
git -C "$(brew --repo homebrew/core)" fetch --unshallow
git checkout 9ba3d6ef8891e5c15dbdc9333f857b13711d4e97 Formula/qt@5.5.rb

これで導入できる準備ができました。


(詳しい理由が知りたい人向け)

新規でbrewを入れた場合

膨大な過去のコミットをとりいれずに

最新の数件のコミットだけをとりこんでいます。

現時点でqt削除は380コミット前なので過去のコミットをすべて取得できるように

コマンドを追加してあります。



HighSierra(10.13以下)の方

brew install qt@5.5


Mojaveの方

brew install qt@5.5 --force-bottle

これでqt@5.5が導入できました。

あとはbundleなりgemなりでcapybara-webkitを導入してください!