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を利用できるので便利。でも無駄が多い気がする。
