開発環境を作る Mac

React Native + Expo アプリをDeploy(ネイティブビルド)する - 2020年最新版


 今回は、Expoで作ったアプリを、Androidのネイティブアプリとしてビルド(Deploy)します。
 この記事では、前々回までで作成途中のHello Worldアプリ(請求書アプリモックアップ)をDeployします。公式ドキュメントはこちら

この記事は連載です。親記事はこちら

前提

 expo-cliがグローバルインストールされていることを前提とします。インストールしたかわからない場合は、この連載の初回を御覧ください。

 また、Windowsの場合はWSLが有効になっている必要があります。この記事はMacを想定していますので詳細は省略しますが、必要な方はWindowsを対象としている元記事を見てください(元記事は少し古いです)。

app.jsonにビルド情報を設定

 AndroidおよびiOS用にビルド情報を設定します。Visual Studio Codeでプロジェクトを開いて、以下の情報を入れます。通常であればAndroidとiOSの部分だけ、以下にあうように追記すればよいはずです。
 "com.yourcompany.yourappname"部分は、会社のWeb URLの逆(example.comならcom.example)を入れて、さらにアプリのslugを入れるとよいでしょう。ただし、Androidのpackage名にはハイフンが使えないので、ハイフンはアンダースコアに置き換えましょう。(- → _)

{
  "expo": {
    "name": "Hello World!",
    "slug": "hello-world",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet": true,
      "bundleIdentifier": "com.yourcompany.yourappname",
      "buildNumber": "1.0.0"
    },
    "android": {
      "package": "com.yourcompany.yourappname",
      "versionCode": 1
    },
    "web": {
      "favicon": "./assets/favicon.png"
    },
    "description": ""
  }
}

ビルドを開始する

 Visual Studio CodeのPowerShellで、ビルドを実行します。ここではAndroid用のビルドを実施しますが、iOSも同様です。

$ expo build:android -t apk

 keystoreをアップロードするか聞かれるのですが、とりあえずここではExpoに任せる(Generate new keystore)を選択します。

ビルド中...

 ビルドはターミナル上で実施されているように見えますが、実際にはExpoサーバー上で実施されます。

 ターミナル上にはビルドがキューに入った(ビルド順番待ちになった)という表示が最後に出ますが、その上にあるWebリンクを開けると、ExpoのWebでビルド状況を確認することができます。この画面は、プロジェクトのBuildページからも見ることができます。

 右にある「Build Queue Status」をクリックすると、Expoサーバーが今どれくらい忙しいか見ることができます。

 ビルドが終わるまで、ひたすら待ちます。混み具合によりますが、数十分はかかります。

右下のダウンロードリンクでapkファイルをダウンロードし、Androidに直接インストールしたりDeploygateなどのサービス経由で配布したり、Play Storeにアップロードすることができます。

- 開発環境を作る, Mac

© 2024 今日からプログラマー