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

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

More than 1 year has passed since last update.

@kaikecchi

deploygateにapkをコマンドでアップロード

Reluxでは、開発版アプリの動作確認にdeploygateを利用しています。
今まではAndroidStudio上の操作でapkを作成し、deploygateへのアップロードは手動でやっていましたが、作業の効率化とCI導入を見据えて一連の作業をコマンド化しました。

SigningConfigs

まずはapp/build.gradleにsingingConfigsの設定を追加します。

app/build.gradle
    signingConfigs {
        release {
            storeFile file("./product.keystore")
            storePassword  properties.getProperty("RELEASE_STORE_PASSWORD")
            keyAlias properties.getProperty("RELEASE_KEY_ALIAS")
            keyPassword properties.getProperty("RELEASE_KEY_PASSWORD")
        }
    }

RELEASE_STORE_PASSWORD等の情報は、ここではlocal.propertiesに記載して読み込む形になっていますが、gradle.propertiesに記載したり、ディレクトリきってgradleファイルを外出しするなど、プロジェクト管理方法にあわせて変更してください。

signingConfigsを追加したら、buildTypesでreleaseのsigningConfigを設定します。
リリース版と開発版を同じ端末に同居できるように、applicationIdSuffixなどもbuildTypesに記載しています。

app/build.gradle
    buildTypes {
        debug {
            applicationIdSuffix = ".dev"
            manifestPlaceholders = [appName: "@string/app_name_dev"]
        }
        release {
            signingConfig signingConfigs.release
        }
    }

ProductFlavor

Reluxではログの出力やAPIの向き先切り替え機能などの開発機能の有無を、buildConfigFieldを利用して切り替えています。
deploygateにアップロードするapkは、開発版専用機能はもたせつつ署名やアプリ名等の情報はリリース版と揃える(buildType.release)形にするため、ProductFlavorを活用します。
そんな要求ないよという場合は以下は不要です(^^)

app/build.gradle
    productFlavors {
        dev {
            buildConfigField "boolean", "DEVELOPMENT_MODE", "true"
        }
        production {
            buildConfigField "boolean", "DEVELOPMENT_MODE", "false"
        }
    }

これでBuildVariantsを「devRelease」とすることで、上記要求を満たせるようになりました。

deploygateへのアップロード

deploygateへのアップロードは、deploygate-cliを利用します。
まずコンソールで以下のコマンドを実行しインストールします。

curl -sSL https://deploygate.com/cli/install/e154b207 | bash

プロジェクト直下に移動し、下記のコマンドでアップロードを行ないます。
userオプションは、deploygateでのアカウントが単一の場合は不要です。

dg deploy --user デプロイゲートユーザー名 --message 'メッセージ'

初回アップロード時は、deploygateプラグインをプロジェクトにインストールするかどうか聞かれます。インストールを許可するとgraldeファイルに自動で追記されます。

続いてBuildVariantを聞かれます。

Looking for DeployGate tasks...
1. relux:uploadDeployGateDevDebug
2. relux:uploadDeployGateDevRelease
3. relux:uploadDeployGateProductionDebug
4. relux:uploadDeployGateProductionRelease
Please choose a task to run:

ReluxはdevReleaseにしたいので、「2. relux:uploadDeployGateDevRelease」を選択します。

以上、簡単アップロードでした (^o^)/

1
Help us understand the problem. What is going on with this article?
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
1
Help us understand the problem. What is going on with this article?