Android Wearアプリを開発するときはversionCodeなどを一元管理すると便利

この記事は最終更新から3ヶ月以上が経過しています。情報が古い可能性があります。

Android Wearアプリ(WatchFaceも)をGoogle Playで公開するときにbuild.gradleの共通化をやっておいた方がいいと思います。

Android Wearアプリプロジェクトを作成すると、標準ではmobileモジュールとwearモジュールが作成され、それぞれのモジュールにbuild.gradleが作成されます。

Google Playにアプリを公開する場合、build.gradleで指定するversionCodeとversionNameはmobile,wearモジュールで共通にしなければなりません。

初回アップロード時は両方同じ値なので問題ありませんが、アプリをバージョンアップする際に2つのファイルをいじらないといけないのは面倒くさいと思います。(というか絶対に忘れる)

そのためversionCodeなどは、一箇所直せばmobileとwearのどちらにも適用されるようにしてやるといいと思います。

私はmobile,wearのbuild.gradleで共通して利用する部分を、別ファイルにして読み込ませるようにしてみました。

QiitaのAndroidの署名情報(signingConfigs)を外出しようを参考にさせていただきました。

/mobile/buildConfig.gradle

defaultConfig {
    applicationId "jp.gcreate.product.customphotowatch"
    minSdkVersion 18
    targetSdkVersion 21
    versionCode 3
    versionName "1.0.2"
}
```

/mobile/build.gradle

apply plugin: ‘com.android.application’

android {
 apply from: ‘configBuild.gradle’, to: android
 compileSdkVersion 21
 buildToolsVersion “21.1.2”
}

〜dependenciesは省略


/wear/build.gradle

apply plugin: ‘com.android.application’


android {
 apply from: ‘../mobile/configBuild.gradle’, to: android
 compileSdkVersion 21
 buildToolsVersion “21.1.2”

 defaultConfig{
 minSdkVersion 20
 }
}

〜dependenciesは省略
“`

上記では省略しましたが、buildTypeも外部ファイルに出して両者で同じ設定が適用されるようにしてます。

やってて未だに不安なのが、ちゃんと正しく設定できているのか、確認の仕方がいまいち分からず不安だということでしょうか・・・。

先日のDroidKaigiで発表のあった、つかえるGradleプロジェクトの作り方のやり方も参考になります。

こちらのスライドでの方法は、versionCode等の値を/build.gradleで定義し、各々のプロジェクトその値を参照することで共通化するやり方です。

こちらのやり方のほうが分かりやすいなぁって発表聞いてて思いました。

ちなみにAndroid Studioではルートのことをプロジェクト、mobileとかwearのことをモジュールと呼びますが、Gradleの世界ではどれもプロジェクトと呼ぶそうです。勉強になりました。

スポンサーリンク
  • このエントリーをはてなブックマークに追加

フォローする