Help us understand the problem. What is going on with this article?

Expoで作成したアプリをGoogle Playに申請するまで(2019/11~12時点)

App Store版の記事と同様に、Expoで作成した最低限のアプリをGoogle Playに申請する流れに関してまとめます。

今回私が作成し申請したアプリはこちらのFirebaseとカメラを使用したアプリです。

Google Play Developper登録

Google Playにアプリを公開するには、GoogleアカウントとGoogle Play Developerとしての登録が必要です。

Google Play Developer
https://developer.android.com/distribute/console

こちらの「ログイン」ボタンから新規登録して支払い情報を入力してください。
App Storeと違う点は年額ではなく最初に$25かかるだけであるというのと、デベロッパー登録のみに関しては審査がないというところです。

Google Play Consoleで新規アプリを作成

デベロッパー登録が完了したら、Google Play Consoleを開き、「アプリの作成」ボタン→言語・アプリ名を入力してアプリ情報を作成します。

googleplay.png

app.jsonを編集

まずはドキュメントを参考にしながら、app.jsonに必要な情報を追加します。

iconsplashはiOSと共通

app.json(部分)
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#00c2ad"
    },

Android向けにアイコンなどを追加します。

app.json(部分)
    "android": {
      "package": "[パッケージ名]",
      "adaptiveIcon": {
        "backgroundColor": "#00c2ad",
        "foregroundImage": "./assets/adaptiveicon.png"
      },
      "permissions": [
        "CAMERA",
        "READ_EXTERNAL_STORAGE",
        "WRITE_EXTERNAL_STORAGE"
      ]
    },
    "notification": {
      "icon": "./assets/notificationicon.png",
      "color": "#00c2ad"
    },

パッケージ名はiOSのbundleIdentifierと同じように、ドメインを使って世界的に固有のものを使用します。

アダプティブアイコンはAndroid独自のアイコン規格で、ランチャー側でマスク形状を変えたりアニメーションなどをつけることができるものです。
アダプティブアイコンがサポートされている端末においてはこれを設定していないアプリはアイコンの周りに白い余白が出てしまいます(参考)。
前面の画像(foregroundImage)と後景の画像(backgroundColor(デフォルトは白) あるいは backgroundImage)で構成され、
Expoの設定ではforegroundImageに1024x1024pxの透明pngファイル、背景色(backgroundColor)あるいはbackgroundImageに1024x1024pxのpngファイルを指定すればOKです。私が作成したforegroundImageは以下の画像ですが、このように中央に要素を配置するようなデザインの場合、様々な形状に合わせるためにある程度余白を取っておく必要があります。

adaptiveicon.png

Expoではデフォルトでは全ての権限への許可が設定されていて、そのままだとインストールする際に必要以上の権限をユーザーに求めてしまうことになりますので、permissionsに必要な分だけ記載しましょう。
今回私が申請したアプリはカメラとFirebase(内部的にAsyncStorageを使用)を使用するので、CAMERAREAD_EXTERNAL_STORAGEおよびWRITE_EXTERNAL_STORAGEを許可しています。

通知アイコンについてはこちらの記事を参考にしてください。

ビルドする

app.jsonに必要な設定を追加したら、Android Studioをインストールした上で、Android向けにビルドします。

$ expo build:android

最初にビルドする際は、このように証明書(keystore)を新しく生成するか既存のものを使うかどうかの選択肢が出てきます。

[exp] No currently active or previous builds for this project.

Would you like to upload a keystore or have us generate one for you?
If you don't know what this means, let us handle it! :)

  1) Let Expo handle the process!
  2) I want to upload my own keystore!

通常は1)でそのままExpoに任せてしまって大丈夫です。ただし、後々アップデートする際には同じkeystoreが必要なので、(これも同じ環境で開発する場合は通常意識しなくても大丈夫ですが)keystoreを安全な場所にバックアップして置くことが推奨されています。

$ expo fetch:android:keystore

上記のコマンドを使うと、keystoreの情報が表示され、ディレクトリに.jksファイルが生成されます。
これをpublicなリポジトリにアップしたりしないよう注意して保存しましょう。

ビルドが完了し、apkファイルへのリンクが表示されたらダウンロードし完了です。

アプリ情報を入力する

Google Play Consoleを開き、アプリ情報を入力します。

googleplay.png

右側メニューのチェックマークが付いている部分を順に入力していきます。

まずは「ストアの掲載情報」で基本的な情報を埋めていきましょう。
タイトルや説明文などのほか、最低限以下のものが必要です。

  • アイコン→ 512x512pxのPNG画像(Google Playで表示されます)
  • スクリーンショット→ 1辺の長さ320px~3840pxのJPGまたはPNG画像 少なくとも2種類
  • フィーチャーグラフィック(ストアで大きめに表示されるバナー)→ 横1024 x 縦500のJPGまたはPNG画像(↓スクショを使って適当に作っておきました) featuregraphic.png
  • プライバシーポリシー→ 今回はURLを送信しないというチェックがありますが、Expoでは必須(広告IDを送信しているため

プライバシーポリシーは気になりますが、App Store版の記事と同じくそれほど厳しい感じではない気がします(もちろんそれなりのサービスを運用するのであれば別ですが)。

「価格と配布」で価格、配布する国、同意事項などを入力します。ここで広告を含むかどうかを選択したら、「アプリのコンテンツ」でターゲット年齢層を入力することができます。

残るは「コンテンツのレーティング」と「アプリのリリース」ですが、「コンテンツのレーティング」でアンケートに回答するにはapkファイルをアップロードする必要があります。
「アプリのリリース」で任意のトラック(そのまま公開する場合は製品版)から「管理」→「リリースを作成」し、ドロップエリアにapkファイルをドラッグ&ドロップしてアップロードします。

googleplay.png

アップロードが完了し、「コンテンツのレーティング」で全ての質問に答えたら、全ての必要な情報が入力できたことになります。
その後先ほど作成したリリース画面から確認→公開へ進めばアプリの申請が完了します。

審査

申請が完了すると、ダッシュボードには公開中と表示されますが、しばらくすると以下のように審査中と表示されるようになります。

googleplay.png

今までにExpoで作成したアプリをアップデートを含め3回申請しましたが、問題ない場合でも審査の完了には数時間から数日と幅があるような気がします。
そして無事に審査が完了したら、このようにIARCのレーティングを知らせるメールでもって伝えられます。
googleplay.png

公開されたアプリはGoogle Play Consoleのダッシュボード→「GOOGLE PLAYで表示」で確認できます。

以上、Google PlayでのExpoアプリ申請の大まかな流れでした。
App Storeでの申請のようにアップロード作業などが縛られていないのと、最低限用意するスクリーンショットが少ないため比較的簡単に感じるのではないでしょうか。

Why do not you register as a user and use Qiita more conveniently?
  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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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