はじめに
GITにプッシュしたら自動でビルドしたいよねってことでまずはシェル化しました
環境
OS:
CentOS 7.1
PP:
- jdk1.8.0_45
- AndroidSDK
※下記はx86系のものもいれた - libstdc++.i686
- libstdc++-devel.i686
- zlib.i686
- zlib-devel.i686
AndroidSDKの準備
パス設定
export ANDROID_HOME=/usr/local/android-sdk
更新
${ANDROID_HOME}/tools/android update sdk --no-ui
※ただしbuild-toolsは最新が入るので指定したい場合は下記のようにフィルターを追加
${ANDROID_HOME}/tools/android update sdk --no-ui --all --filter build-tools-22.0.1
githubからのエクスポート
githubの画面上にある"Download ZIP"のURLをcurlコマンドを利用してダウンロード
curl -s -f -L -u '{アカウント}/token:{アクセストークン}' {ダウンロードURL} -o {出力ファイル名}
※アクセストークンは「 https://github.com/settings/tokens 」で生成
ビルド
AndroidStudioで作成したプロジェクトルートにgradlewが存在するのでこれを利用
デバッグビルド
gradlew assembleDebug
リリースビルド
gradlew assembleRelease
両方
gradlew assemble
署名
jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore {キーファイル} -keypass {キーパスワード} -storepass {ストアパスワード} {APK保存先} {キーエイリアス}
zipalign
zipalign -v 4 {署名前のAPKパス} {署名後のAPK保存先}
tips
windowsサーバへのマウント
cat /etc/fstab
//{Windowsパス} /{マウントパス} cifs user={ログインユーザ},password={パスワード},defaults 0 0
ソース内のテキストの置換
# 置換対象のパラメータ
RPARAM[0]='{ファイルパス}|s#{置換前のテキスト}#{置換後のテキスト}#g'
RPARAM[1]='{ファイルパス}|s#{置換前のテキスト}#{置換後のテキスト}#g'
RPARAM[2]='{ファイルパス}|s#{置換前のテキスト}#{置換後のテキスト}#g'
# パラメータを展開
for (( I = 0; I < ${#RPARAM[@]}; ++I ))
do
# パイプ区切りのパラメータを分解
file=`echo ${RPARAM[$I]} | cut -d\| -f1`
regexp=`echo ${RPARAM[$I]} | cut -d\| -f2`
# sedで置換
sed -i -e ${regexp} ${_PJT_DIR}/${file}
done
まとめ
上記を順番してシェルに落とし込んでます
1.★GITHUBからのエクスポート
2.ZIP解凍
(ソース置換)
3.★コンパイル
4.APKを共有サーバにコピー
5.APK以外の一時ファイル削除