
- はじめに
- 全体の流れ
- 1.WSLでExpoプロジェクトへ移動
- 2.Expoアプリが正常に動くことを確認
- 3. EAS CLIをインストール
- 4. Expoアカウントへログイン
- 5.EAS Buildの初期設定
- 6. app.jsonを確認する
- 7. Apple Developer Programが必要
- 8.最初はiOS Production Buildを作る
- 9. Appleアカウントへのログインを求められる
- 10.証明書をEASに作ってもらう
- 11. ソースコードがEASへアップロードされる
- 12 . EAS上でiOSビルド
- 13. ビルド成功
- 14. Production IPAは直接iPhoneヘインストールしない
- 15. App Store Connectへアップロード
- 16. TestFlightで確認
- さいごに
はじめに
React Nativeでスマートフォンアプリを開発するときは、Expoを利用すると、作成中のアプリを実機向けにパッケージ化し、iPhoneやAndroidの実機で簡単に確認できます。
Windows11+WSL上で作成したExpo/React Nativeアプリなら、WSLからEAS Buildへアップロードして、iOS用のipaをクラウドビルドできます。XCodeでローカルビルド環境を構築しなくても進められます。EAS Build自体がExpoのクラウド上でビルドする仕組みだからです。
今回は、iPhone実機に直接インストールできる「.ipa」を作る方法を中心に説明します。
全体の流れ
WSLのプロジェクトディレクトリで、次の順番で進めます。
Expoプロジェクト
↓
EAS CLIインストール
↓
Expoログイン
↓
eas build:configure
↓
iOS Bundle Identifier設定
↓
Apple Developerアカウント連携
↓
eas build --platform ios
↓
ExpoのMacサーバーでビルド
↓
.ipa生成
↓
TestFlight / App Store Connectへ提出
1.WSLでExpoプロジェクトへ移動
たとえばプロジェクトが
~/projects/my-app
なら、
cd ~/projects/my-app
確認します。
pwd
さらに、
ls
として、
app
package.json
node_modules
app.json
などが見えればOKです。
Expo Routerを使っている場合は、
app/
app/(tabs)/
app/_layout.tsx
などがある構成でも問題ありません。
2.Expoアプリが正常に動くことを確認
まず、
npx expo start
を実行します。
Expo Goから現在のアプリが正常に動いていることを確認してください。
ここでエラーが出ている状態のままEAS Buildへ進むより、まずExpo Go上で正常動作させておくのがおすすめです。
3. EAS CLIをインストール
WSLで、
npm install -g eas-cli
実行します。
確認します。
eas --version
例えば、
eas-cli/...
と表示されればOKです。
4. Expoアカウントへログイン
eas login
xpoアカウントの
Email or username
Password
を入力します。
ログイン確認は、
eas whoami
です。
自分のExpoユーザー名が表示されればOKです。
5.EAS Buildの初期設定
対象プロジェクトのディレクトリで、
eas build:configure
を実行します。
初回の場合、EAS用設定ファイル
eas.json
が作成されます。
例えば次のようになります。
{
"cli": {
"version": ">= 16.0.0"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {
}
}
}
細かい内容はEAS CLIのバージョンによって多少変わります。
6. app.jsonを確認する
iOSでは、Androidのpackageに相当するものとして
ios.bundleIdentifier
が重要です。
例えばapp.jsonを、
{
"expo": {
"name": "MyApp",
"slug": "my-app",
"version": "1.0.0",
"ios": {
"bundleIdentifier": "com.absolutesolutions.myapp"
},
"android": {
"package": "com.absolutesolutions.myapp"
}
}
}
のように設定します。
特に重要なのが、
"bundleIdentifier": "com.absolutesolutions.myapp"
です。
一般的には、
com.会社名.アプリ名
という形式にします。
例えば、
com.absolutesolutions.sampleapp
などです。
Bundle Identifierは慎重に決める
App Storeへ公開する予定なら、あとから気軽に変更するものではありません。
たとえば、
com.absolutesolutions.myapp
でApple側にアプリを登録したら、そのアプリはこのBundle Identifierを基準に管理されます。
7. Apple Developer Programが必要
ここがAndroidとの大きな違いです。
App Store / TestFlight向けにiOSアプリを作る場合は、
Apple Developer Program
への加入が必要です。
EAS BuildでiPhone実機向けビルドを作成する場合にも、署名に必要なApple Developer資格情報が必要になります。Expo公式でもこの点が前提条件として案内されています。
Macを持っている必要はありません。
今回の構成なら、
Windows 11
↓
WSL Ubuntu
↓
Expo
↓
EAS Build
↓
ExpoのMac
↓
iOSアプリ
となります。
8.最初はiOS Production Buildを作る
App Store / TestFlight用なら、WSLで、
eas build --platform ios
を実行します。
短縮すると、
eas build -p ios
でも構いません。
productionを明示するなら、
eas build --platform ios --profile production
です。
Expo公式でも、iOS本番ビルドでは
eas build --platform ios
を使用する手順になっています。
9. Appleアカウントへのログインを求められる
初回ビルドではEAS CLIからApple関連の質問が出てきます。
例えば、
Do you want to log in to your Apple account?
という質問です。
ここでは、
Y
を選択します。
その後、
Apple ID:
が求められます。
Apple Developer Programに登録しているApple Accountを入力します。
10.証明書をEASに作ってもらう
iOSでは、
Distribution Certificate
Provisioning Profile
などが必要になります。
初回は、基本的にはEASに自動管理させて構いません。
例えば、
Generate a new Apple Distribution Certificate?
と出たら、
Yes
でよいでしょう。
さらに、
Generate a new Apple Provisioning Profile?
も、
Yes
で構いません。
Expo公式でもEAS CLIからAppleアカウントにログインし、Distribution CertificateとProvisioning Profileを準備する方法が案内されています。
11. ソースコードがEASへアップロードされる
設定が終わると、
Compressing project files
Uploading to EAS Build
などと表示されます。
その後、
Build details:
https://expo.dev/accounts/....
のようなURLが表示されます。
ここから先は、
WSLではなくExpoのMacサーバー
で処理されます。
したがって、
WindowsだからXcodeがない
という問題は発生しません。
12 . EAS上でiOSビルド
EAS側では概ね、
npm install
↓
Expo Prebuild
↓
CocoaPods
↓
Xcode
↓
Code Signing
↓
Archive
↓
IPA
という処理が行われます。
Expo公式の説明でも、ローカル側で準備した後、iOSビルド自体はEAS Buildのリモート環境で実行されます。
13. ビルド成功
成功すると、
Build finished
となります。
EAS Dashboardからビルド結果を確認できます。
iOSの場合、成果物は基本的に
.ipa
になります。
Androidでいう、
.apk
.aab
に相当するものです。
14. Production IPAは直接iPhoneヘインストールしない
ここは重要です。
Production Buildで作成した.ipaは、
iPhoneへ直接コピー
↓
インストール
というものではありません。
Production Buildは、
EAS Build
↓
IPA
↓
App Store Connect
↓
TestFlight
↓
iPhone
という形になります。
15. App Store Connectへアップロード
EAS Buildが成功したら、
eas submit --platform ios
を実行できます。
短縮すると、
eas submit -p ios
です。
すると、
Which build do you want to submit?
などと聞かれるので、直前のビルドを選びます。
このコマンド実行後、App Store Connectへ提出することができます。
16. TestFlightで確認
App Store Connectへアップロードできたら、
App Store Connect
↓
マイApp
↓
対象アプリ
↓
TestFlight
を開きます。
App側の処理が完了すると、TestFlightからiPhoneへインストールできます。
実際には、iPhoneからTestFlightアプリを開き、その中に今回アップロードした、アプリがあるので、実行することで、アプリを立ち上げることが可能になる。
さいごに
結論として、Windows+WSLだけでもEASを利用すればiOSアプリのビルドからTestFlight/App Storeへの提出まで進めることが可能です。
Macの実機は必要ではないですが、iPhone実機向けの署名・App Store配布にはApp Developer Programへの承認が必要になってきます。
