Bitrise から Google Play へアプリをデプロイする

# ０．はじめに

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3134363632392f37303662313162612d656639372d356339632d663233362d3062316534623934626235302e6a706567.jpeg](https://qiita-image-store.s3.amazonaws.com/0/161939/cd7217a0-9997-da45-ef44-136ae2c80e4d.jpeg) → ![android_limg_280x.jpg](https://qiita-image-store.s3.amazonaws.com/0/161939/1b6a9f19-a8d3-f290-00bc-6de7e21292bf.jpeg) → ![unnamed.png](https://qiita-image-store.s3.amazonaws.com/0/161939/739c8d71-7ef7-2100-b510-f567baddce1d.png)

Android アプリを提供するにあたって、Bitrise を使って、Google Play へデプロイする手順を試してみました。

* [Dashboard \- Bitrise](https://app.bitrise.io/dashboard)
* [すべてのアプリ \- Google Play Console](https://play.google.com/apps/publish/?hl=ja&account=5045945855331689688#AppListPlace)

Git リポジトリは、AWS CodeCommit を利用しました。

* [AWS CodeCommit から Bitrise に接続する \- Qiita](https://qiita.com/kusokamayarou/items/3b4f20bd47295ef56ca2)

# １．Worlflows

* Activate SSH key (RSA private key) : ※デフォルト
* Git Clone Repository : ※デフォルト
* Install missing Android SDK components : ※デフォルト
* Change Android versionCode and versionName : ※以下にて詳細を記載。
* Do anything with Script step : ※デフォルト
* Gradle Runner : ※以下にて詳細を記載。
* Sign APK : ※以下にて詳細を記載。
* Deploy to Bitrise.io - Apps, Logs, Artifacts : ※デフォルト
* Google Play Deploy : ※以下にて詳細を記載。
* ![app.bitrise.io_app_c47f23b8cf0338db (0).png](https://qiita-image-store.s3.amazonaws.com/0/161939/3f30aca7-0f2d-93da-1ce7-dfb1993cd333.png)

## Change Android versionCode and versionName

* Path to the build.gradle file REQUIRED Insert variable
    * `$PROJECT_LOCATION/$MODULE/build.gradle`
* New versionName
    * `$VERSION_NAME`
* New versionCode
    * `$VERSION_CODE`
* ![app.bitrise.io_app_c47f23b8cf0338db (10).png](https://qiita-image-store.s3.amazonaws.com/0/161939/7ed2385b-85e6-3c65-9b30-17312c09eec8.png)

## Do anything with Script step

* ※特に何もしてないですが、設定ファイルの内容を出力しておくと問題が起きた時に解析し易くて便利♪
* ![app.bitrise.io_app_c47f23b8cf0338db (11).png](https://qiita-image-store.s3.amazonaws.com/0/161939/41dec391-af6e-1717-9869-a5c3ca8951aa.png)
* スクリプトで設定を変更したい場合は、以下の様な `sed` コマンド等で変更する。

```bash
sed -i -e 's|<string name="app_name">.*</string>|<string name="app_name">'${APP_NAME_TEST}'</string>|g' strings.xml
```

## Gradle Runner

* Config
    * Optional path to the gradle build file to use
        * `$PROJECT_LOCATION/build.gradle`
    * gradlew file path REQUIRED
        * `$PROJECT_LOCATION/gradlew`
* ![app.bitrise.io_app_c47f23b8cf0338db (12).png](https://qiita-image-store.s3.amazonaws.com/0/161939/193a350f-f225-36f9-6671-530d4e3c91f9.png)

## Sign APK

* ※デフォルトの設定のままで大丈夫だと思います。
* ![app.bitrise.io_app_c47f23b8cf0338db (13).png](https://qiita-image-store.s3.amazonaws.com/0/161939/ebee4805-eecb-836f-6003-7a29ed78fbfe.png)

## Google Play Deploy

* Service Account JSON key file path
    * `$BITRISEIO_GOOGLEPLAYANDROIDDEVELOPER_SERVICE_ACCOUNT_KEY_URL`
* Package name
    * `$PACKAGE_NAME`
* ![app.bitrise.io_app_c47f23b8cf0338db (15).png](https://qiita-image-store.s3.amazonaws.com/0/161939/00eb564f-5f6d-11f6-d608-56b30b0a4702.png)

# ２．Code Signing

* ANDROID KEYSTORE FILE
    * [2019.04.02]追記
        * 以下の記事にも記載しましたが、Google Play 経由での配布の場合は、アップロード証明書でサイニングする必要がある様です。
        * こちらには、アプリ署名の証明書のキーストアではなく、アップロード証明書のキーストアを登録した方がいいみたいです。
        * [Android アプリで App Links を実装したが、うまく機能せず、アプリの署名に問題があった。 \- Qiita](https://qiita.com/kusokamayarou/items/7770c34f7defd24e966b)
    * *.jks
        * Android アプリのキーストアファイルをアップロードします。
    * Keystore password will be available as Environment Variable
        * キーストアファイル作成時に設定した、パスワード。
    * Keystore alias will be available as Environment Variable
        * キーストアファイル作成時に設定した、エイリアス。
    * Private key password will be available as Environment Variable
        * キーストアファイル作成時に設定した、プライベートパスワード。
* GENERIC FILE STORAGE
    * Google Play Android Developer : *.json
        * `$BITRISEIO_GOOGLEPLAYANDROIDDEVELOPER_SERVICE_ACCOUNT_KEY_URL`
        * 「Google Play Deploy」で利用。
* ![app.bitrise.io_app_c47f23b8cf0338db (1).png](https://qiita-image-store.s3.amazonaws.com/0/161939/765f79c5-f620-3e2c-b42c-441715c6082d.png)

# ３．Secrets

* Secret Environment Variables
    * ※特に設定はいらないと思います。
* ![app.bitrise.io_app_c47f23b8cf0338db (2).png](https://qiita-image-store.s3.amazonaws.com/0/161939/8a1580af-71bd-ff16-e647-3f1c4be0b122.png)

# ４．Env Vars

* App Environment Variables
    * VERSION_NAME : ※任意
        * バージョンは、Google　Play　へデプロイする際に設定する必要があります。
        * 「Change Android versionCode and versionName」で利用。
    * VERSION_CODE : ※任意
        * バージョンコードは、Google　Play　へデプロイする際に設定する必要があります。
        * 「Change Android versionCode and versionName」で利用。
    * MODULE : app
        * 「Add new app」する際に設定を要求されます。
    * BUILD_VARIANT : Release
        * 「Add new app」する際に設定を要求されます。
    * TEST_VARIANT : Debug
        * 「Add new app」する際に設定を要求されます。
    * PROJECT_LOCATION : ※任意
        * 「Add new app」する際に設定を要求されます。
        * リポジトリにおいて、対象となるプロジェクトフォルダ
    * PACKAGE_NAME : ※任意
        * パッケージ名は、Google　Play　へデプロイする際に設定する必要があります。
        * 「Google Play Deploy」で利用。
* ![app.bitrise.io_app_c47f23b8cf0338db (3).png](https://qiita-image-store.s3.amazonaws.com/0/161939/c619111d-1289-7fbe-0397-6b0916dc42f0.png)

# ５．Google Play

* Google PLay の設定は、以下のサイトの設定で問題ないはず…。たぶん…。
    * [Google Play での Android アプリの配信方法\(インストールとアップデート\)を試してみる \- Qiita](https://qiita.com/kusokamayarou/items/e3a1319e827bbaa78fc2)

# ９９．ハマりポイント

* そもそも「Add new app」する際に、自動的に Android のプロジェクトフォルダが検出されなくて、困りました…。以前、やった時は自動で検出されたのに…。
<br><br>
* Google Play へデプロイする際の設定や「Sign APK」などがわからず、結構ハマりました…。

# ＸＸ．まとめ

次は、Bitrise から iTunes Store へのデプロイの設定について、投稿出来ればと思います。

では♪

* ※参考 :
    * 参考にさせて頂いたサイトがたくさんあったと思うんですが…、すいません、忘れてしまいました…。