もくじ
なぜexpo buildコマンドが使えなくなったのか?
詳しく知りたい方は下記のリンクからEXPO公式ホームページを御覧ください。
以下に一部抜粋し翻訳したものを掲載しております。
このドキュメントは 2022 年 8 月にアーカイブされたものであり、今後の更新はありません。SDK 46 はクラシック ビルドでサポートされる最後の SDK であり、クラシック ビルド サービスは 2023 年 1 月 4 日以降、すべての SDK バージョンで実行を停止します。代わりに、EAS ビルドを使用してください。
EXPO公式ホームページ
まあ要するに今までのは古くなったので動かないけど、ちゃんと新しいのを用意したから環境を整えてねってことです!
この記事は既にEXPOの開発環境が構築済みでexpo build出来なくなってしまった方向けになります。
0からの環境構築は解説しておりませんのでご注意ください。
導入
EAS CLIのインストール
Expo でプロジェクトを初期化する必要があります。下記のコマンドでEAS CLI をグローバル npm 依存関係としてインストールします
npm install -g eas-cli
Expoアカウントにログインする
eas login
もしExpoアカウントにログインしていない場合には実行してください。ビルドを作成したり、作成したアプリをストアに送信するのに必要です。
すでログイン済みの場合はこの操作は不要です。
expo-dev-clientをインストールする
npx expo install expo-dev-client
EASビルド用にプロジェクトを構成する
EAS ビルド用に iOS または Android プロジェクトを構成するために、次のコマンドを実行します。
eas build:configure
自動でやるかを聞かれるので当然Yesを選びます。
Would you like to automatically create an EAS project for HOGEHOGE? > (Y/n)
すると以下のような選択肢が現れます。自分が開発しているプラットフォームを選びましょう!
ALL
iOS
Android
iOSシミュレーター/Androidエミュレータのビルドを作成する
iOSシミュレータの場合
iOSシミュレータで開発ビルドを作成してインストールするには、eas.jsonでios.simulatorオプションをtrueに設定しましょう
{
"build": {
"development-simulator": {
"developmentClient": true,
"distribution": "internal",
"ios": {
"simulator": true <--ココ
}
}
}
}
次に以下のコマンドを実行して、iOSシミュレーター用の開発ビルドを作成します。
eas build --profile development-simulator --platform ios
ビルドが完了すると、自動的にダウンロードしてインストールするように求めてくるのでYesを選択して直接シミュレータにインストールします。
Install and run the iOS build on a simulator? > (Y/n)
これでローカル開発環境用のアプリをシミュレーター上で実行する準備ができました!
次のコマンドで開発サーバーを立ち上げてシミュレーターで実行します。
npx expo start --dev-client
npx expo start で開発サーバーを立ち上げてしまうと使用しているライブラリによってはエラーが発生することがありますので、必ず最後に--dev--clientをつけるようにしましょう❗
Androidエミュレータの場合
Androidエミュレータで開発ビルドを作成してインストールするには、.apkが必要ですので、次のコマンドを実行して作成します。
eas build --profile development --platform android
ビルドが完了すると、実機デバイスインストールするためのQRコードが表示され、エミュレータには自動的にダウンロードしてインストールするように求めてくるのでYesを選択して直接エミュレータにインストールします。
Install and run the Android build on a emulator? > (Y/n)
これでローカル開発環境用のアプリをエミュレーター上で実行する準備ができました!
次のコマンドで開発サーバーを立ち上げてエミュレーターで実行します。
npx expo start --dev-client
実機デバイスのビルドを作成する
iOSデバイスの場合
iOSデバイスに開発ビルドを作成してインストールするには、Apple Developer メンバーシップが必要です!
開発に使用するiOSデバイスをアドホック プロビジョニング プロファイルに登録するために、次のコマンドを実行します。
eas device:create
実行すると過去に使用したことのあるApple IDが表示されるので、使用したいIDを選択します
? Select a Team >
Team name 1(xxxxxxxxxx)
Team name 2 (xxxxxxxxxx)
次にデバイスをどのように登録するかを問われるのでWebsiteを選択します。
? How would you like to register your devices ? > - Use arrow-keys. Return to submit.
Website - generates a registration URL to be opened on your devices <-- コレ!!!
Developer Portal - import devices already registered on Apple Developer Portal
Input - allows you to type in UDIDs (advanced option)
Exit
少し待つとQRコードが表示されますので、iOSデバイスでスキャンします。
するとプロファイルをインストールするように求められるので実行していきます。
これでiOSデバイスを準備が整いました!
次のコマンドで開発ビルドを作成します。
eas build --profile development --platform ios
しばらくするとどのデバイスにビルドするか問われますので先程登録したiOSデバイスを選択します。
? Select devices for the ad hoc build: > - Space to select. Return to submit
xxxxxxxx-xxxxxxxxxxxxxxxx (iPhone) <-- コレ
この後プッシュ通知をするか聞かれることがあります。必要なければNoで良いです。
? Would you lile to set up Push Notification for your project? > - Use arrow-keys. Return to submit.
Yes
No <-- コレ
No, don't ask again (preference will be saved to eas.json)
iOS16以降の最新のOSを持っているiOSデバイスは、開発ビルドをインストールするために開発者モードを有効にする必要があります。
ビルドが完了したら、コンソールに表示されたQRコードをiOSデバイスのカメラでスキャンしてインストールします。
これでローカル開発環境用のアプリをiOSデバイス上で実行する準備ができました!
次のコマンドで開発サーバーを立ち上げてiOSデバイスで実行します。
npx expo start --dev-client
iOSデバイスでもEXPOアカウントにログインを忘れないようにしましょう!
Androidデバイスの場合
Androidエミュレータへインストールと同じです。コマンド実行後に表示されるQRコードをAndoridデバイスでスキャンしてインストールしてください!
アプリストア向けにビルドする
以下のコマンドでexpo buildと同様にビルドを実行出来ます。
eas build --platform ios
eas build --platform android
コマンド実行後はexpo CLIと大差ないので流れに沿っていけばOKです!
参考サイト
https://docs.expo.dev/develop/development-builds/introduction/
https://docs.expo.dev/develop/development-builds/installation/
https://docs.expo.dev/develop/development-builds/create-a-build/
https://docs.expo.dev/develop/development-builds/use-development-builds/