pod install
できない系の問題に結構ぶつかってる気がする。今回は「TypeError - Unable to convert Ruby value `"FBSDKCoreKit"' into a CFTypeRef.」とエラーが出てJenkinsのビルドジョブが途中でabortしてしまう現象についてです。
CocoaPodsはここ数ヶ月間しばらくアップデートされない状態になっていました。そのおかげもあってか全プロジェクトがv0.39.0で統一されていたので問題は起こっていませんでした。
CocoaPods v1.0.0の正式リリースに伴って、プロジェクトAでは「CocoaPods v0.39.0」を、もうひとつのプロジェクトBでは「CocoaPods v1.0.0」を使わないといけない状況になりました。
メンバーの助言でbundlerを使って切り替えるようにしたのですが、bundler & CocoaPods v1.0.0の環境だとTypeError - Unable to convert Ruby value xxx into a CFTypeRef.
とエラーがでてしまう問題があるようです。
結果を書くと、bundler経由でCocoaPods v1.0.0を使う場合にはRuby 2.3.0を使わない表題のエラーがでてしまうようでした。
CocoaPods v1.0を使うだけでよければRuby 2.3.0を入れれば良いのでしょう。しかし、Ruby 2.3.0を入れるとCocoaPods 0.39.0でトラブルが発生してしまったことがあったので、「Ruby 2.3.0とCocoaPods 0.39.0の組み合わせ」では使いたくありません。
……ということで、rbenvを使ってプロジェクトごとに使用するRubyのバージョンを変更しつつ、Gemfileの設定を変更しました。
ビルドスクリプト
# ruby rbenv local 2.3.0 rbenv rehash # cocoapods bundle install --path vendor/bundle bundle exec pod install # build project xcodebuild xxx
Gemfile
source 'https://rubygems.org' ruby '~>2.3' gem 'cocoapods', '1.0.0'
参考
CocoaPodsのIssuesに同じ現象について書かれていたので参考にしました。