SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ExpoとEASで始める快適モバイルアプリ開発

EASとeas credentialsによるクレデンシャル管理で、「署名の壁」を越える

ExpoとEASで始める快適モバイルアプリ開発 第9回

eas credentials――クレデンシャル管理の革命(1)

 ここからは、筆者が「EASに触れて最初に感動したコマンド」として推したいeas credentialsを紹介します。モバイルアプリのリリースで最も手間のかかる「クレデンシャル管理」を、Expoが運用するクラウドに丸ごと引き取ってもらえる、非常に強力なコマンドです。

モバイルアプリの署名に必要なクレデンシャル

 まず前提として、iOS/Androidアプリをビルドしてストアに提出するには、プラットフォームごとに異なるクレデンシャル(署名用の鍵類)を揃える必要があります(図3)。

図3:iOS側のクレデンシャル関係図とAndroid側のキーストアの役割
図3:iOS側のクレデンシャル関係図とAndroid側のキーストアの役割

 iOS側で必要になる主なものは次の3種類です。

  • Distribution Certificate:Apple Developer Programの有効な開発者であることを証明する証明書
  • Provisioning Profile:アプリID・証明書・配布形態(Ad Hoc/App Store/Enterprise)を紐付けるプロファイル
  • Push Notification Key(任意):プッシュ通知を送るための認証キー

 一方、Android側はシンプルで、基本的にはキーストア(Keystore)ファイル一種類で完結します。ただしキーストアはアプリのアイデンティティそのものなので、紛失するとそのアプリの更新ができなくなる、非常に重要なファイルです。Play Consoleへのデプロイに必要なアップロード鍵とストア配信時の署名に使用されるアプリ署名鍵のうち、署名鍵はPlay Consoleに保存しておけますが、アップロード鍵はリリースビルドを行うマシンで扱う必要があります。

EASなしの世界

 eas credentialsのありがたみを実感してもらうために、EASを使わなかった場合に何をすることになるかを軽く振り返ります。

 iOSなら、Apple Developer Programのダッシュボード(developer.apple.com)にブラウザでログインし、Certificates, Identifiers & Profilesのページで証明書を発行し、App IDを登録し、Provisioning Profileを作ってダウンロードする……という手順を踏みます。

 チームメンバーに共有するには、生成した.p12ファイルや.mobileprovisionファイルをGit 管理するか、何らかのセキュアストレージ経由で渡すか、といった運用を自分たちで設計する必要があります。Fastlaneのmatchを使えば暗号化Gitリポジトリを経由した共有の仕組みに乗れますが、そのためにはまた別途Matchfileの設定を書き、チームで運用ルールを決める必要があります。

 Androidのキーストアもkeytoolコマンドで生成した.keystoreファイルの保管・共有をどうするかをチームで決めることになります。うっかりGitに平文でコミットされた日には、リポジトリのアクセス権がある全員にリリース署名権限が流出することになります。

 こうした作業がアプリの数やチームの数だけ発生します。面倒な上に、ミスが即インシデントにつながります。

eas credentials の対話的UIをウォークスルーする

 前置きが長くなりましたが、EASを使う世界ではこれらをすべてeas credentialsコマンドの対話的UIに任せられます。サンプルプロジェクトのルートで次のコマンドを叩いたとします(リスト1。easコマンドのインストール方法は後述します)。

[リスト1]eas credentialsコマンドの実行
eas credentials

 プラットフォーム(iOS/Android)を選ぶと、そのプロジェクトに紐づくクレデンシャルのメニュー画面に入ります。図4はiOSでメニューに入った直後、まだ何もクレデンシャルが登録されていない状態の表示例、図5はAndroidでビルドを走らせた後にキーストアが登録済みになっている状態の表示例です。

図4:iOS credentials の対話フロー
図4:iOS credentialsの対話フロー
図5:Android credentials の対話フロー
図5:Android credentialsの対話フロー

 ここでは次の操作が、すべてコマンドラインの対話だけで完結します。

  • クレデンシャルの新規生成:Distribution CertificateやProvisioning Profile、Androidキーストアを EAS 側で自動生成し、クラウドに保管
  • 既存クレデンシャルの登録:すでに手元にある.p12.keystoreをEASにアップロードして、以降クラウドで一元管理
  • 現在の設定の確認・ダウンロード:登録済みクレデンシャルの一覧表示、ローカルへのダウンロード
  • クレデンシャルの差し替え:プッシュキーを差し替えたい、証明書を再発行したい、といった更新操作

 特に強力なのが、iOSの証明書やProvisioning ProfileをEAS側がApple Developer ProgramのAPI経由で直接発行してくれる点です。Apple IDでのログインを求められ、二要素認証を通過した後は、EASがバックグラウンドで必要な証明書類をApple側に発行登録し、そのままクラウドに保管してくれます。開発者がAppleのダッシュボードを開く必要はありません。

 なお、iOSのクレデンシャル管理を始める前にはapp.jsonios.bundleIdentifierを設定しておく必要があります(後述のAndroidパッケージ名と同じくio.github.<アカウント名>.<アプリ名>形式が無難です)。

 チームで共有するときも、eas credentialsでクレデンシャルをEAS上のプロジェクトに紐付けておけば、他のメンバーはeas buildを叩くだけで同じクレデンシャルを使ってビルドできます。.p12ファイルをSlackで送り合う運用は過去のものになります。

次のページ
eas credentials――クレデンシャル管理の革命(2)

この記事は参考になりましたか?

ExpoとEASで始める快適モバイルアプリ開発連載記事一覧

もっと読む

この記事の著者

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編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/24261 2026/05/26 09:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー