Reluxでは、開発版アプリの動作確認にdeploygateを利用しています。
今まではAndroidStudio上の操作でapkを作成し、deploygateへのアップロードは手動でやっていましたが、作業の効率化とCI導入を見据えて一連の作業をコマンド化しました。
SigningConfigs
まずはapp/build.gradleにsingingConfigsの設定を追加します。
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に記載しています。
buildTypes {
debug {
applicationIdSuffix = ".dev"
manifestPlaceholders = [appName: "@string/app_name_dev"]
}
release {
signingConfig signingConfigs.release
}
}
ProductFlavor
Reluxではログの出力やAPIの向き先切り替え機能などの開発機能の有無を、buildConfigFieldを利用して切り替えています。
deploygateにアップロードするapkは、開発版専用機能はもたせつつ署名やアプリ名等の情報はリリース版と揃える(buildType.release)形にするため、ProductFlavorを活用します。
そんな要求ないよという場合は以下は不要です(^^)
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^)/