odeの開発メモ日記

プログラマーやってます。今までの道のり ポケコンbasic→C(DirectX5 ネットやろうぜ)→Perl(ちょろっと)→Java→C#→Ruby→Android(Java)

androidアプリをビルドしてバージョン別フォルダでサーバーへアップロードするスクリプト

aaptコマンドはパスを通す必要あり。
[androidSDKのパス]/build-tools/[version]/aapt

# ビルド
./gradlew assembleStaging
./gradlew assembleRelease

# バージョン名取得
versionName=`aapt dump badging app/build/outputs/apk/app-*-staging.apk | sed -n 's/.*versionName='\''\(.*\)'\'' .*/\1/gp'`

# リモートにバージョンフォルダ作成。2回目ディレクトリ作成済みでエラーになるけどきにしない。-pは怖いのでやめた。
ssh 転送先ホスト mkdir 設置先パス/$versionName/

# リモートにアップロード
scp -r app/build/outputs/apk/app-*-staging.apk 転送先ホスト:設置先パス/$versionName/
scp -r app/build/outputs/apk/app-*-release.apk 転送先ホスト:設置先パス/$versionName/

バージョンチェック参考

http://qiita.com/nofrmm/items/9bdc0d7af2c018b49593

sed memo

シングルクォートのエスケープは'\''
http://d.hatena.ne.jp/tanakaBox/20070729/1185709167

最長一致になるのでスペースいれたりでマッチしないように工夫必要
http://techtipshoge.blogspot.jp/2011/10/sed.html

sedコマンド
http://bi.biopapyrus.net/linux/sed.html
https://hydrocul.github.io/wiki/commands/sed.html

実行環境

android studio 1.4.1
buildToolsVersion '23.0.1'
com.android.tools.build:gradle:1.3.1