Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Azure Pipelines の Android アプリビルドでビルドタイプを指定する

More than 1 year has passed since last update.

Azure Pipelines で Android アプリ(Not Xamarin)をビルドする時、普通にテンプレから作った gradle タスクは、 gradlew build を実行しますが、これはアプリのプロジェクトに含まれる全てのビルドタイプをビルドするため、多くの場合ムダです。1

例えば私のプロジェクトの場合、ビルドタイプは標準の「Debug」,「Release」に加え実験用の「Experiment」を用意していたので、タスクの実行に 12分 もかかっていました。

image.png

完了後、Debug, Release, Experiment それぞれの .apk が生成されていました。

image.png

Release のみをビルドする

特定のビルドタイプのみ(ここでは Release とします)をビルドする場合、gradlew build の代わりに gradlew assembleRelease を実行すればよいのですが、既定で追加されている gradle タスクではなぜか変更できません。

image.png

仕方がないので、既存の gradle タスクは削除して、「+」 で gradle タスクを検索して追加します。

image.png

こちらの Tasks は変更できるので assembleRelease を設定します。

image.png

これで保存してパイプラインを実行すると、ビルドタスクの時間が 12分 から 8分 に短縮されました。

image.png

Artifacts にも Release 版の apk しか生成されていないのが確認できます。

image.png

@penguin_sharp さん、ありがとうございました。

おまけ

上記はビルドAgent 「Hosted VS2017」 で作業してたんですが、これを 「Hosted macOS」 に替えたところ、 8分かかっていたビルド時間が 「2分50秒」 に短縮されました。

image.png

VS2017 が遅いのか Hosted macOS が早いのか分かりませんが、とりあえず Android アプリのビルドは Hosted macOS を使うとよさそうです。2


  1. Debug ビルドで単体テストを行い、同時に配布用 Release ビルドを生成したい、というケースでもあるのでしょうか?わからん。 

  2. Xamarin.Android も Hosted macOS でビルドしたいなー、確か Xamarin.iOS しかビルドできないんだよなー 

amay077
ランチの時は呼ぶといい!
https://blog.amay077.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away