Travis CIを使ってObjective-Cのプロジェクトをコンパイルする時、TravisCI側のCocoapodsのバージョンが0.34.0なんだけどプロジェクトのCocoapodsは0.35.0でコンパイルに失敗していたので、いい感じにできるようにしておいた。ついでに、諸々の処理をRakefileに書き出した。
Rakefile
# coding: utf-8 WORKSPACE_NAME = 'myapp.xcworkspace' def xctool(task_name, scheme) sh("xctool -workspace #{WORKSPACE_NAME} -scheme #{scheme} -sdk iphonesimulator #{task_name}") end namespace :cocoapods do desc 'Cocoapodsを最新のバージョンに更新します' task :upgrade do sh('gem install cocoapods -r --no-ri --no-rdoc') sh('pod --version') end desc 'Cocoapodsのライブラリをインストールします' task :install do sh('pod install') end end namespace :pullrequest do desc 'PullRequest用のテストを実行します。' task :test do # 通常のスキームでビルドができる xctool('build', 'MyApp') # テスト用のスキームでテストが通る xctool('test', 'MyAppTests') end end
.travis.xml
language: objective-c cache: cocoapods before_install: - rake cocoapods:upgrade - pod --version script: rake pullrequest:test branches: only: - master - develop - /^(release).*$/
このようにしておくと、最新のCocoapodsを利用できるので便利。でも無駄が多い気がする。