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での指定は不要となるため削除します。
buildscript {
repositories {
...
}
dependencies {
- classpath 'com.github.triplet.gradle:play-publisher:2.0.0-beta1'
...
}
次にapp直下のbuild.gradleにpluginの追加をします。
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ファイルに含まれているため、これも不要になったようです。(残していたらエラーで消せといわれました)
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
既存のjsonFile
とpk12File
はserviceAccountCredentials
に変更・統一されました
Task名の変更
例)
旧:publishApkRelease
新:publishReleaseApk
現時点ではまだ動作するようですが、将来的に廃止されるようです。
Android Gradle Pluginのbundle廃止
明示的にgradleのdependencyを記述する必要があるようです。普通、記述してあるはずなので基本的に気にしなくてよいのかと思います
Listings Structureの変更
multi-dimensionのFlavorに対応するにあたり、リスティングメタデータの構造が変更されたようです。(この辺は使っていないので、あまり詳しくないです…)
例)
旧:../play/en-US/listing/shortdescription
新:../play/listings/en-US/shortdescription