- 公開日:2015年09月18日
- 最終更新日:2016年01月31日
記事概要
androidのアプリ開発をする前の準備の手順をまとめました。その3の続きです。
環境
- Android Studio1.3.0
- OS X Yosemite
プロジェクトビルド
続いてアプリのビルド設定を行います。
途中参加のプロジェクトとかでよく見かけるビルドパターンに、
Android StudioやEclipseでapkファイルを出力する
というものがあります。
この手法は
ビルドのアンチパターン
です。今後はやめましょう。この手法を採用している現場に限って、keystoreを無くしただの、パスワードが分からないだのと無用なトラブルを巻き起こしている確率が高いと思います。
Android Studioから取り入れられたgradleを使ったビルド手法は、先人のノウハウが詰まっています。
gradleを使えば、簡単にandroidアプリのビルドを自動化できます。この作業を後回しにすると、設定をやらなくなるので、
最初に自動化してください
build.gradleの設定
では、まずapp/build.gradleの設定を行ないます。
Android Studio1.3.0のデフォルトで作成されたapp/build.gradleは以下のように記述されています。
build.gradle
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
apkファイルの作成を自動化するには、signingConfigsをbuildTypesの上に追記します。
build.gradle
// 追加
signingConfigs {
debug {
}
release {
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
signingConfigsの中にdebugとreleaseを追加しました。
debugは「開発」apkでreleaseは「公開」apkになります。
続いて、buildTypesにもdebugを追加します。
build.gradle
signingConfigs {
debug {
}
release {
}
}
buildTypes {
// 追加
debug {
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
これで準備OKです。では、signingConfigsでapkファイル自動出力の設定をしていきましょう。
signingConfigs
signingConfigsを利用すると、証明書の設定がおこなえます。この設定により、gradleコマンドを実行するだけで様々な種類のapkを作成、出力できるようになります。
adnroidアプリの開発でよくありがちなのが、
「keystoreのパスワードがわかない」
「keystoreファイルが見つからない」
等のヒューマンミス(管理不備)です。
最悪のケースだと、
「keystoreを作成した外注先のエンジニアが辞めていた」
なんてこともあります(経験済)。
そういったケースを防ぐためにも、gradleでビルドの設定をしておくべきです。
keystoreの設定
apk作成時に利用するkeystoreを設定しましょう。以下のように記載します。
build.gradle
signingConfigs {
debug {
// 追加
storeFile file("debug.keystore")
}
release {
// 追加
storeFile file("release.keystore")
}
}
buildTypes {
debug {
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
debug(開発)用のdebug.keystoreはandroid導入時にインストールされたkeystoreを利用しましょう。では、debug.keystoreファイルをプロジェクトフォルダ配下に移してみましょう。
build.gradle
// macの場合、debug.keystoreファイルはここの配下にある
cd ~/.android/
// ファイルリストの確認
ls -l
// debug用のkeystore
debug.keystore
// debug.keystoreをコピー
cp -a debug.keystore {プロジェクトフォルダ}
debug(開発)用のkeystoreの準備は完了です。続いて、公開(release)用のkeystoreをプロジェクトフォルダ配下に配置します。当然ゼロベースで作るアプリに本番keystoreはないので、Android Studioで作成します。
【Generate Signed APK】を選択します。
【Create new ...】を選択します。
keystoreの出力場所を選択します。プロジェクトフォルダの配下を指定します。
File name:はrelease.keystoreにしておきます。(どんな名称でも平気です)
keystoreに必要なデータを入力していきます。入力したpasswordは忘れないようにメモするか、キャプチャを撮っておきます。
入力したら、先へ進みます。全ての手続きが終わりrelease.apkが作成されるとPOPで知らせてくれます。
これで本番用のkeystoreが完成しました。
では、今入力した情報をapp/build.gradleのreleaseに記載します。
まずは、app/build.gradleにパスワードを設定します。
build.gradle
signingConfigs {
debug {
storeFile file("debug.keystore")
// 追加
storePassword "android"
}
release {
storeFile file("release.keystore")
// 追加
storePassword "xxxxxxx"
}
}
buildTypes {
debug {
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
storePasswordにパスワードを記述します。debug.keystoreはデフォルトのままで問題ないと思います。
keyAliasの設定をします。
build.gradle
signingConfigs {
debug {
storeFile file("debug.keystore")
storePassword "android"
// 追加
keyAlias "androiddebugkey"
}
release {
storeFile file("release.keystore")
storePassword "xxxxxxx"
// 追加
keyAlias "xxxxxxx"
}
}
buildTypes {
debug {
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Aliasで入力したAliasを設定します。
最後にkeyPasswordの設定をします。
build.gradle
signingConfigs {
debug {
storeFile file("debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
// 追加
keyPassword "android"
}
release {
storeFile file("release.keystore")
storePassword "xxxxxxx"
keyAlias "xxxxxxx"
// 追加
keyPassword "android"
}
}
buildTypes {
debug {
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
証明書の設定は完了です。最後に上記で設定した証明を利用する設定をbuildTypesに記述します。
build.gradle
signingConfigs {
debug {
storeFile file("debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
release {
storeFile file("release.keystore")
storePassword "xxxxxxx"
keyAlias "xxxxxxx"
keyPassword "android"
}
}
buildTypes {
debug {
// 追加
signingConfig signingConfigs.debug
}
release {
// 追加
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
signingConfigsで設定した証明書の内容が反映されるようになりました。
最後にapkを出力できるようにzipAlignEnabledをtrueにして記載します。
build.gradle
signingConfigs {
debug {
storeFile file("debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
release {
storeFile file("release.keystore")
storePassword "xxxxxxx"
keyAlias "xxxxxxx"
keyPassword "android"
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
// 追加
zipAlignEnabled true
}
release {
signingConfig signingConfigs.release
// 追加
zipAlignEnabled true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
apkファイルを出力
コマンドプロンプトを開いてコマンドを叩きます。
build.gradle
// プロジェクトフォルダに移動
cd {projecrFolder}
// gradleを実行
./gradlew clean build
apkファイルが出力されたことを確認します。出力場所は、{プロジェクトフォルダ}/app/build/outputs/apkです。
apkが作成されていることが確認できました。
これでターミナルのコマンドからや、jenkins等のツールを利用してapkが作成できるようになりました。
gitで管理すればkeystoreやパスワード等の紛失も心配もありません。
でも、これだけではまだ不十分です。次はgradleで環境ごとのパッケージ設定をします。
続きます。
PICK UP
TechBooster,小太刀御禄,出村成和,重田大助,西岡靖代,宮川大輔,柏本和俊,あんざいゆき,八木俊広,木村尭海,小林慎治,有山圭二,中西良明,わかめ まさひろ,新井祐一,桝井草介,久郷達也,寺園聖文,shige0501,山下智樹,前田章博,秋葉ちひろ,末広尚義,中澤慧,日高正博,塚田翔也,井形圭介,中川幸哉,山崎誠,山下武志,なまそで,橋爪香織,さとうかずのり,l_b__ インプレスジャパン 2014-01-17
関連記事
参考サイト
この記事がお役にたちましたらシェアをお願いします