前提
同じインスタンス上でiOSのipaも作っている→インスタンスがmac
.travis.yml
Androidの環境作るだけ抜き出すと、こんな感じになる。
language: objective-c before_install: - brew update - brew install ant android-sdk android-ndk - export ANDROID_HOME=/usr/local/opt/android-sdk - export NDK_ROOT=/usr/local/opt/android-ndk - echo y | android update sdk --filter tools,build-tools-19.0.3,platform-tools,android-10,android-14 --no-ui --force
echo y |
で、途中で出てくるLICENSEへの同意してくれる。便利。--filter
に指定するのは目的に応じて変更する。
before_install:
の部分はapk作りたいタイミングに合わせて変えてください。
Rakefile
直接コマンド叩いてもいいんだけど、文字列操作とかもろもろ便利なので、RakefileでBuildしてる。AndroidのBuild部分だけ抜き出した。
keystore関係は予め作って、passとかをベタ書きなり環境変数に設定しておく。
ANDROID_PROJECT_ROOT='/path/to/proj.android' namespace :build do desc "Build apk file" task :android do sh "#{ANDROID_PROJECT_ROOT}/build_native.py" key_store = "key.store='#{keystore_path}'" key_store_password = "key.store.password=#{ENV['KEY_STORE_PASSWORD']}" key_alias = "key.alias=#{keystore_alias}" key_alias_password = "key.alias.password=#{ENV['KEY_ALIAS_PASSWORD']}" sh "ant release -buildfile '#{ANDROID_PROJECT_ROOT}/build.xml' -Dsdk.dir=#{ENV['ANDROID_HOME']} -D#{key_store} -D#{key_store_password} -D#{key_alias} -D#{key_alias_password}" end end
rake build:android
実行すると"#{ANDROID_PROJECT_ROOT}/bin/#{APP_NAME}-#{BUILD_CONFIGURATION.downcase}.apk"
に署名済みapkが生成される。
詰まるのTravisCI上にAndroid環境作るのくらいだと思うので、ざっくりした感じで。