TravisCI上でcocos2d-xのapkを作る

前提

同じインスタンス上でiOSipaも作っている→インスタンス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環境作るのくらいだと思うので、ざっくりした感じで。