ダウンロード サンプルファイル (553.6 KB)
前回(第10回)では、eas buildを使ってクラウドでアプリをビルドできるようになりました。次は、その成果物をストアに届ける番です。ネイティブ開発の世界には、Xcodeから直接アップロードしたり、Xcode Cloudを使ってビルドから配布までを進めたりする、整ったデリバリーの導線があります。一方、Expoのマネージドワークフローでは、普段からネイティブプロジェクトを開いて作業するとは限らないため、そうした導線に乗るには別の準備が必要です。そこで今回は、Expoのワークフローから離れずに提出まで進められるeas submitを紹介します。iOSとAndroidの成果物を、同じEASの操作体系でストアへ届ける流れを見ていきましょう。
対象読者
- React NativeとExpoでモバイルアプリを開発し、EAS Buildで成果物を作ったことがあるエンジニア
-
eas submitを使って、iOSやAndroidのアプリをストアへ提出する流れを身につけたい開発者 - ストア提出を、チームで再現可能な手順として整備したい開発リーダー
前提環境
筆者の検証環境は以下の通りです。Apple Developer Programへの登録が済み、第10回で作成したeas-sandboxプロジェクトとeas.jsonが用意されている状態から始めます。第10回の執筆時点からExpo SDKのバージョンが進んだため、サンプルプロジェクトはSDK 57系へアップグレードしています。なお、本稿の実行例はiOSを中心に紹介し、Androidの提出は流れの解説にとどめます。
- macOS Tahoe 26.5.2
- Node.js 26.5.0
- Expo 57.0.7
- React Native 0.86.0
- React 19.2.3
- TypeScript 6.0.3
- EAS CLI 21.0.2
- Apple Developer Program(有料、年間99ドル)に登録済み
- Google Play Consoleデベロッパーアカウント(初回登録25ドル)はAndroidの提出を実際に試す場合に必要
ストア提出の下ごしらえ:iOS(App Store ConnectとAPIキー)
eas submitを叩く前に、ストア側に受け皿が必要です。ビルド成果物をアップロードすれば自動的にアプリのページができあがるわけではなく、iOSならApp Store Connect、AndroidならGoogle Play Consoleに、アプリのレコードと提出先を用意しておかなければなりません。
ストアの規約に同意し、アプリを受け入れる設定をするこの準備だけは、EASにも肩代わりできない人間の仕事です。逆にいえば、受け皿と認証情報が揃えば、ここから先の提出操作はEAS CLIで済ませられます。
iOSとAndroidでは、準備する認証情報の性質が異なります。まずはApp Store Connect側にアプリを登録し、次にGoogle Play Console側にアプリとサービスアカウントを登録していきましょう。
iOSの提出先はApp Store Connectです。App Store Connectにサインインし、「アプリ」画面の「+」ボタンから「新規アプリ」を選びます。プラットフォームにiOSを選び、名前、プライマリ言語、バンドルID、SKUなどを入力してアプリレコードを作成します。
このときに選ぶバンドルIDは、プロジェクトのapp.jsonに設定したios.bundleIdentifierと一致している必要があります。第10回でAndroidのパッケージ名にio.github.nkzn.eassandboxを使ったのと同じ要領で、app.jsonに"ios": { "bundleIdentifier": "io.github.nkzn.eassandbox" }を設定しているなら、App Store Connectでも同じバンドルIDを選びます(図1)。ここがずれていると、EAS Buildで生成したiOSバイナリを提出できません。
SKUはApp Store Connect内部の管理用IDで、ユーザーの目に触れることはありません。アカウント内で一意であれば任意の文字列を指定でき、迷ったらバンドルIDと同じ文字列を入れておけば十分です。
eas submitからApp Store Connectへ接続する認証方法は、App Store Connect API KeyとApple IDログインの2択です。継続的な提出やCIでの利用を考えるなら、対話的なログインに依存しないApp Store Connect API Keyを推奨します。手元で一度だけ提出する場合などは、Apple IDでログインする方法も選べます。
API KeyはApp Store Connectの「ユーザとアクセス」から発行します。「統合」へ進み、App Store Connect APIのキー作成画面で、App Manager以上のロールを選んで作成します。作成直後に表示される秘密鍵の.p8ファイルをダウンロードし、Issuer IDとキーIDも控えておきます。
EASでAPI Keyを使うときに必要なのは、ダウンロードした.p8ファイル、Issuer ID、キーIDの3点です。.p8ファイルは作成後に再ダウンロードできないため、パスワードマネージャーなど安全な場所で保管してください。キーの値やファイルをリポジトリにコミットしてはいけません。なお、create-expo-app が生成する.gitignoreには*.p8があらかじめ含まれており、うっかりコミットしてしまう事故をある程度防いでくれます。
キーの作成後、App Store Connect APIの一覧画面にIssuer IDと各キーのキーIDが表示されます。.p8ファイルのダウンロードもこの画面から行います(図2)。
なお、submitプロファイルを設定しないままeas submitを実行すると、「Ensuring your app exists on App Store Connect.」というメッセージとともにApple Developerアカウントへのログインを求められます。これは、EASがApp Store Connect上のアプリレコードの確認や作成を代行しようとする動きです。
メッセージにも表示される通り、ascAppIdをsubmitプロファイルに指定しておけばこのステップは省略されます。対話に身を任せる方法もありますが、本稿では提出先とバンドルIDの対応を自分の目で確認できる、事前作成の手順を採りました。
この記事は参考になりましたか?
- ExpoとEASで始める快適モバイルアプリ開発連載記事一覧
-
- ExpoとEASで属人的なリリース作業を脱却する。バージョン管理やEAS Metadata...
- アプリリリースまでExpoとEASで完結。EAS Submitによるストア提出
- クラウドビルドの実践――EAS BuildとDevelopment Buildを活用した開...
- この記事の著者
-
WINGSプロジェクト 中川 幸哉(ナカガワ ユキヤ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
