LoginSignup
8
5

More than 5 years have passed since last update.

gradle play publisherがAppBundleをサポートしたので試してみた

Last updated at Posted at 2018-10-15

gradle play publisher

gradle play publisherはご存知の通り、gradleでAPKやmappingファイルなどを自動アップロードしてくれるpluginです。(詳細は割愛させていただきます)

2018年5月、Google I/OにてAppBundleが発表されたものの、gradle play publisherではAppBundleはサポートされておらず、私はAPKでの配信を続けていました。
が、2018/10/07、ついにbeta1がリリースされました。
そして11/30に正式リリースとなりました。

まずは一度試してみました。

追記

11/30に2.0.0が正式リリースされましたので、追記します

対応方法

まずはバージョンをあげます。記述方法がかわります。
まずプロジェクト直下のbuild.gradleでの指定は不要となるため削除します。

build.gradle(プロジェクト直下)
buildscript {
    repositories {
        ...
    }
    dependencies {
-       classpath 'com.github.triplet.gradle:play-publisher:2.0.0-beta1'
        ...
    }

次にapp直下のbuild.gradleにpluginの追加をします。

build.gradle(app直下)
plugins {
    id 'com.android.application'
+   id 'com.github.triplet.play' version '2.0.0'
}

pluginsの部分は、人によってはapply plugin: 'com.android.application'と記述しているかもしれません。ここにバージョンの指定をします。

その後syncすると、「serviceAccountCredentials使え」ってエラーが出たので、Readmeをよくみたら2.0.0からjsonファイルまたはp12ファイルの指定方法が変わり、serviceAccountCredentialsを使うようになったようです。
同時に、serviceAccountEmail の情報もjsonファイルに含まれているため、これも不要になったようです。(残していたらエラーで消せといわれました)

app/build.gradle
plugins {
    id 'com.android.application'
    id 'com.github.triplet.play' version '2.0.0'
    ...
}
...

play {
   track = 'alpha'
-  serviceAccountEmail = 'your-email address'
-  jsonFile = file('jsonファイル')
+  serviceAccountCredentials = file('jsonファイル')
}

実行方法

1.2.2までは以下のコマンドでした。

$ ./gradlew publishApkRelease

2.0.0からは以下のように微妙に変更されています。

$ ./gradlew publishReleaseApk
$ ./gradlew publishReleaseBundle

結果

自作アプリでも試してみました。
publishReleaseBundleを実行してみると、確かにAppBundle形式でStoreにアップロードされていました。ちなみにサイズは約13%の削減に成功しました。
まだbetaではありますが、特に凝ったことをしていない私の場合は問題なく動いていそうでした。

補足 - 変更内容 -

2.0.0からのBreaking Changesだけまとめておきます。
※間違っていたら指摘お願いします…

Configutation Propertiesの廃止

以下のプロパティが廃止されています

  • uploadImages
    • gradleのキャッシュシステムとインクリメンタルビルドを利用しているので、画像が変更された場合にのみアップロードされます。そのため、このプロパティは廃止されました。
  • untrackOld:
    • versionCodeのコンフリクトのために廃止されたようです
  • errorOnSizeLimit
    • サイズエラーの場合は明示的にエラーとするため、廃止になりました

Service Account Credentials API

既存のjsonFilepk12FileserviceAccountCredentialsに変更・統一されました

Task名の変更

例)
旧:publishApkRelease
新:publishReleaseApk

現時点ではまだ動作するようですが、将来的に廃止されるようです。

Android Gradle Pluginのbundle廃止

明示的にgradleのdependencyを記述する必要があるようです。普通、記述してあるはずなので基本的に気にしなくてよいのかと思います

Listings Structureの変更

multi-dimensionのFlavorに対応するにあたり、リスティングメタデータの構造が変更されたようです。(この辺は使っていないので、あまり詳しくないです…)
例)
旧:../play/en-US/listing/shortdescription
新:../play/listings/en-US/shortdescription

8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5