コンテンツにスキップ

02. EAS Buildで本番リリース用ビルドを作る

ストア公開への技術的な第1歩は、App StoreおよびGoogle Playの規格に完全に適合した「本番(Production)リリース用バイナリ」をビルドすることです。

Androidでは単なるAPKではなく .aab(Android App Bundle)、iOSでは本番用配布証明書で署名された .ipa が必要になります。

この記事では、app.json の本番メタデータ設定から、アプリアセットの規格、eas.json のプロダクション設定、そして証明書管理までをEAS Buildで完全自動化してビルドを成功させる手順を詳しく解説します。


  1. app.jsonの本番必須項目(識別子・バージョン・権限)
  2. アプリアイコンとスプラッシュ画像の必須解像度規定
  3. eas.jsonの「production」プロファイル設定
  4. 証明書・キーストアの自動生成(EAS Credentials)
  5. 本番ビルドの実行コマンド(iOS / Android)
  6. ストアへの自動転送コマンド「eas submit」の完全設定
  7. まとめと次のステップ

1. app.jsonの本番必須項目(識別子・バージョン・権限)

Section titled “1. app.jsonの本番必須項目(識別子・バージョン・権限)”

本番ビルドを行う前に、アプリの「戸籍」となる情報を app.json に正しく定義する必要があります。ここが重複していたり未設定だとビルドやストア登録で弾かれます。

{
"expo": {
"name": "HabitFlow",
"slug": "habit-flow",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./assets/icon.png",
"userInterfaceStyle": "light",
"splash": {
"image": "./assets/splash-icon.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"ios": {
"supportsTablet": false,
"bundleIdentifier": "com.yourname.habitflow",
"buildNumber": "1",
"infoPlist": {
"ITSAppUsesNonExemptEncryption": false
}
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"package": "com.yourname.habitflow",
"versionCode": 1,
"permissions": []
}
}
}
  • bundleIdentifier / package: 世界中で一意(ユニーク)なIDである必要があります。一般にドメイン名を逆にした形式(com.ドメイン名.アプリ名)を使用します。一度登録すると変更できません。
  • ITSAppUsesNonExemptEncryption: false: 免除対象外の暗号化を使用していない場合の宣言です。全アプリ共通の必須値ではありません。利用SDKも含めた暗号化の実態を確認し、Appleの輸出コンプライアンス案内に従って設定してください。
  • android.permissions: []: 追加の権限を指定しないという意味です。依存ライブラリやconfig pluginが追加する権限まで消す設定ではありません。不要なものは android.blockedPermissions などで明示的に除外し、生成されたビルドでも確認します。

2. アプリアイコンとスプラッシュ画像の必須解像度規定

Section titled “2. アプリアイコンとスプラッシュ画像の必須解像度規定”

アセット画像にはストアごとに厳密なフォーマットが求められます。

  • icon.png: 1024 x 1024 px の正方形PNG画像。透過背景は不可(背景色は不透明にする必要があります)。角丸はOS側で自動的にかけられるため、四角形のまま作成します。
  • adaptive-icon.png(Android用): 1024 x 1024 px の前面画像。中央の円形セーフエリア(約660px以内)にロゴを収めます。
  • splash-icon.png: アプリ起動時に表示されるスプラッシュ画面のロゴ(約200〜400px相当)。

3. eas.jsonの「production」プロファイル設定

Section titled “3. eas.jsonの「production」プロファイル設定”

eas.json を開き、production プロファイルを確認します。

{
"cli": {
"version": ">= 12.0.0"
},
"build": {
"production": {
"android": {
"buildType": "app-bundle"
},
"ios": {
"simulator": false
}
}
},
"submit": {
"production": {
"android": {
"serviceAccountKeyPath": "./google-service-account.json",
"track": "internal"
},
"ios": {
"appleId": "[email protected]",
"ascAppId": "1234567890"
}
}
}
}

Androidの "buildType": "app-bundle" によって、Google Playの必須形式である .aab ファイルが生成されます。


4. 証明書・キーストアの自動生成(EAS Credentials)

Section titled “4. 証明書・キーストアの自動生成(EAS Credentials)”

iOSの本番配布には「Distribution Certificate」と「Provisioning Profile」、Androidには「Keystore(署名鍵)」が必要です。

EAS CLIは、これらをクラウド上で安全に自動生成・保管してくれます。

ターミナルでビルドコマンドを実行した際、以下のように尋ねられます。

? Would you like Expo to handle your Apple credentials? › (Y/n)

ここで Y(Yes) を選択するだけで、Apple Developerアカウントに自動接続され、適切な本番証明書が生成されてExpoのセキュアなキーストアに保存されます。手動でファイルを作成・管理する必要は一切ありません。


5. 本番ビルドの実行コマンド(iOS / Android)

Section titled “5. 本番ビルドの実行コマンド(iOS / Android)”

準備が整ったら、本番ビルドを開始します。

Terminal window
# 両方のOSを一度に本番ビルド
eas build --platform all --profile production
# 個別にビルドする場合
eas build --platform android --profile production
eas build --platform ios --profile production

クラウド上でコンパイルと最適化処理が走り、約15〜20分で本番バイナリが完成します。


6. ストアへの自動転送コマンド「eas submit」の完全設定

Section titled “6. ストアへの自動転送コマンド「eas submit」の完全設定”

生成されたバイナリを手動でダウンロードしてブラウザからアップロードすることもできますが、EASには eas submit という超便利な自動提出コマンドがあります。

Terminal window
# 最新のiOS本番ビルドをApp Store Connectへ自動送信
eas submit --platform ios --profile production --latest
# 最新のAndroid本番ビルドをGoogle Play Consoleへ自動送信
eas submit --platform android --profile production --latest

eas submit は実行したときに転送するコマンドです。ビルド後に自動転送したい場合は eas build --platform all --profile production --auto-submit を使います。並行して複数のビルドを作っている場合は、--latest の代わりに --id <ビルドID> で対象を明示してください。

iOSではApp Store ConnectへのアップロードとApp Reviewへの審査提出は別の作業です。Androidの初回アップロードにはGoogle Play Consoleでの手動操作が必要です。EAS Submitの公式手順を参照してください。


ストア提出用の本番バイナリが生成され、クラウド上でいつでもストアへ転送できる状態になりました。

次の記事では、実際にアプリを受け入れる側のプラットフォームである「Apple Developer」と「Google Play Console」の登録・初期設定を完全攻略する「03. Apple Developer & Google Play Consoleの準備をする」に進みましょう。