Expo×WSLでAndroidアプリをローカルビルドするのに手こずった記録

About

React Native

https://reactnative.dev/

React Nativeについて調べていたら,チュートリアルExpoというフレームワークを用いていた.これを使ってWindows1 (WSL)でAndroidのAPKをビルドしようとしたところ非常に手こずったのでメモしておく.

参考

eas build --local メモ - Zenn

https://zenn.dev/tadaedo/scraps/6f989f2a104f76

前提

以下がインストール済みとする:

  • WSL (Ubuntu)
  • nodejs, npmなど
  • eas-cli

手順

WSL特有のPATHの無効化

WSLにはWindowsのPATHをUbuntu側にコピーする機能(!?)がデフォルトでオンになっている(!?).混乱の元なのでこれを無効化する.
/etc/wsl.conf

1
2
[interop]
appendWindowsPath = false

を追記する.(ファイルが存在しない場合は作成する)

Android Studioのインストール

Android Studio

https://developer.android.com/studio

公式サイトからAndroid Studioをダウンロードし,.tar.gzを展開.フォルダごと/opt/に移動する.

1
2
3
cd ~/Downloads
tar -zxvf android-studio-2022.3.1.21-linux.tar.gz
sudo mv android-studio /opt/

起動スクリプトを走らせる.

1
/opt/android-studio/bin/studio.sh

画面の指示に従って起動画面が出るまで進む.

NDKとCMakeのインストール

More Actions > SDK Managerを開く.

スクリーンショット

SDK ToolsタブのNDKとCMakeにチェックを入れてApplyをクリック.

002

インストールが完了したらAndroid Studioを閉じて環境変数を設定する.~/.bashrc

1
export ANDROID_HOME=/home/username/Android/Sdk

を追記する(usernameは自分のもの).

ビルド

プロジェクトのeas.json

1
2
3
4
5
6
7
8
9
"build": {
    ...
    "preview": {
      "distribution": "internal",
      "android": {
        "buildType": "apk"
      }
    },
  },

のようにbuildTypeを指定する.
あとはプロジェクトのディレクトリで

1
eas build --platform android --profile preview --local

とするとビルドが通って.apkが生成されると思います.


  1. ネイティブWindowsでAndroidのビルドは2023年1月時点では対応していない ↩︎

comments powered by Disqus