EAS Buildでのパッケージ化と両プラットフォームへのリリース
Expo Goで楽しく遊び、すべてのコードを書き終えた後、このアプリをApp Store(Apple)とGoogle Play(Android)に公開できる正式版にするにはどうすればよいでしょうか?
以前は、これは初心者が諦めるほど難しい暗黒の旅でした。
- iOSをビルドするには、Macコンピュータが「必須」で、Xcode内の複雑な証明書(Certificates)とプロビジョニングプロファイル(Provisioning Profiles)を理解する必要がありました。
- Androidをビルドするには、巨大なAndroid Studioをインストールし、Gradleキーを設定する必要がありました。
今では、**EAS(Expo Application Services)**によってすべてが変わりました!
EASはExpoが提供するクラウドビルドサービスです。あなたのコードをクラウド上のMacとLinuxサーバーに送り、すべての証明書問題を自動的に処理し、最終的にビルドされた.ipa(iOS)と.aab(Android)ファイルを直接返してくれます。さらに、ストアにアップロードして審査に提出することさえできます!
1. 事前準備:開発者アカウントの登録
リリース前に、これは避けられない「通行料」です。
- Apple Developer Program:年間約99米ドル。申請プロセスには身分確認が必要で、約3〜7日かかります。
- Google Play Developer Console:一度限りの終身25米ドル。
アカウントを登録し、バックエンドにログインする権限があることを確認してください。
2. EAS CLIのインストールと設定
ターミナルでEASのコマンドラインツールをグローバルにインストールします:
npm install -g eas-cli
次に、Expoアカウントでログインします(ない場合はexpo.devで無料登録してください):
eas login
プロジェクトディレクトリでEAS設定ファイルを初期化します:
eas build:configure
このコマンドは、プロジェクトのルートディレクトリにeas.jsonファイルを生成します。ここには、development(テスト用)、preview(内部チームテスト用)、production(リリース用正式版)などのビルドプロファイル(Profile)が定義されています。
3. app.jsonの設定(アプリの身分証明書)
ビルド前に、プロジェクトルートのapp.jsonでアプリの公開情報を設定する必要があります:
{
"expo": {
"name": "Vibe Tutor App",
"slug": "vibe-tutor",
"version": "1.0.0",
"orientation": "portrait", // 縦向きに固定
"icon": "./assets/icon.png", // 1024x1024 高画質アイコン
"splash": {
"image": "./assets/splash.png", // スプラッシュ画面画像
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"ios": {
"bundleIdentifier": "com.yourcompany.vibetutor", // 全世界で一意のID(極めて重要)
"buildNumber": "1.0.0"
},
"android": {
"package": "com.yourcompany.vibetutor", // 全世界で一意のID(極めて重要)
"versionCode": 1,
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
}
}
}
}
4. クラウドビルドの開始(EAS Build)
魔法の時間です!XcodeやAndroid Studioを開く必要はありません。
Androidのビルド(.aab)
ターミナルで次のコマンドを入力:
eas build --platform android --profile production
EASはKeystore(署名キー)を生成するかどうかを尋ねます。Yesを選択してください(Expoに管理させることが最も安全です)。
その後、プロジェクトがアップロードされ、URLが提供されます。そのURLにアクセスして、クラウドサーバーがビルドする様子を見ることができます。約10分後、Google Playにアップロードできる.aabファイルをダウンロードできます!
iOSのビルド(.ipa)
ターミナルで次のコマンドを入力:
eas build --platform ios --profile production
この時、EASはApple IDとパスワードの入力を要求します。
心配ありません。これはApple開発者センターにバックグラウンドで接続し、証明書(Certificates)を自動生成して設定するためです。Y(Yes)を選択して証明書の管理を任せてください。
[!WARNING] iOS実機テストの難点 Appleは非常に厳格です。
.ipaファイルをビルドした場合、AndroidのようにUSBケーブルで直接スマホにインストールすることはできません。 開発者バックエンドであなたのiPhoneのUDID(デバイスシリアル番号)を登録し、developmentまたはpreviewバージョンをビルドする必要があります。一般ユーザーがインストールできるようにするには、App Storeにリリースするしかありません。
5. ワンクリックリリース(EAS Submit)
ウェブページを開いてファイルをアップロードするのも面倒なら、Expoはさらに神がかったコマンドeas submitを提供しています。
ビルドが完了したら、次のコマンドを入力:
# 最新のAndroidビルドをGoogle Playバックエンドに自動アップロード
eas submit -p android
# 最新のiOSビルドをApp Store Connect(TestFlight)に自動アップロード
eas submit -p ios
アップロードが成功したら、Apple/Googleの開発者バックエンドにログインし、リリースに必要なマーケティング資料、スクリーンショット、プライバシーポリシーを記入します。
審査の大魔王
審査を提出すると:
- Google Play:約2〜7日。比較的寛容です。
- App Store:約1〜3日。非常に厳格です!アプリがクラッシュする、レイアウトが崩れる、権限を要求するのに
app.jsonで理由を明確に記述していない場合、必ず却下されます。却下されても落胆せず、Apple審査員のフィードバックをよく読み、修正して再提出してください。
🎉 偉業を達成しました! ネイティブアプリ開発を知らないウェブエンジニアから、両プラットフォームのストアに製品をリリースできるようになりました。これがクロスプラットフォーム技術とExpoが与えてくれる超能力です。さあ、最初のアプリを宣伝しましょう!