EAS BuildでiOSアプリをビルドするときに詰まったこと

エンジニアの記録
技術メモ・実体験

React Native(Expo)でiOSアプリを開発していると、EAS Buildのビルド周りで想像以上に詰まります。特にiOSは証明書・プロビジョニングプロファイル・UDIDなど、Android開発にはない概念が多くて最初は混乱しました。

この記事では、EAS BuildでiOSアプリをビルドするときに実際に詰まったことと解決策をまとめます。

対象読者

Expo(EAS Build)でiOSアプリをビルドしようとしているエンジニア、特に「integrity could not be verified」エラーで詰まっている人に向けて書きます。

PROFILE 20代ITエンジニア|React Native(Expo)でiOS・Androidアプリ開発中|Raw Ambition 運営
キラ
キラ
iOSのビルド周りは「Androidより面倒」という評判通りだった。でも仕組みを理解したら怖くなくなった。
Contents
  1. EAS Buildの基本的な仕組みを理解する
  2. 「integrity could not be verified」エラーの原因と解決
  3. EAS Buildには30日の期限がある
  4. 証明書(Certificate)を再利用する方法
  5. まとめ:iOSビルドのチェックリスト

EAS Buildの基本的な仕組みを理解する

まずEAS Buildの仕組みを理解しないと、エラーの原因がわかりません。

?️ EAS Buildの仕組み

ローカルのコード
    ↓ eas build コマンド
Expoのクラウドサーバー(ビルド実行)
    ↓ Apple Developer Accountの証明書を使う
.ipa ファイル(iOSアプリ)が生成される
    ↓ Internal Distribution(Ad Hoc配布)
デバイスにインストール

iOSアプリをインストールするためには以下が必要です:

1. Apple Developer Account(有料 年約15,000円)
2. Distribution Certificate(配布証明書)
3. Provisioning Profile(プロビジョニングプロファイル)
4. デバイスのUDID登録(Ad Hoc配布の場合)

? iOSとAndroidの違い

Androidは比較的自由にAPKをインストールできますが、iOSはAppleの管理が厳しく「誰が作った」「誰のデバイスか」を証明する仕組みが必要です。これがEAS BuildでiOS対応が複雑になる理由です。
スカイ
スカイ
要するに「Appleに認められた開発者が、認められたデバイス向けに作ったアプリ」しかiOSにはインストールできない仕組みなんだね。

「integrity could not be verified」エラーの原因と解決

PROBLEM 01

iOSにインストールしようとすると「integrity could not be verified」が出る

QRコードからアプリをインストールしようとすると「integrity could not be verified」というエラーが出てインストールできない。

以下の順番で確認するのが効率的です:

原因1: EAS Buildの期限切れ(30日)
        → ビルドを作り直す

原因2: プロビジョニングプロファイルの期限切れ(1年)
        → ビルドを作り直すと自動更新される

原因3: デバイスのUDIDが未登録
        → Apple DeveloperにUDIDを登録してから再ビルド

まずビルドをし直す。それでも解決しない場合はUDIDの登録を確認する。

# ビルドをし直す
eas build --platform ios --profile development

# ビルド中にプロビジョニングプロファイルの
# 更新が自動で行われる

⚠️ よくある勘違い

「UDIDを一度登録したから大丈夫」ではありません。プロビジョニングプロファイルが期限切れになると、登録済みのUDIDがあっても新しいビルドが必要です。エラーが出たらまずビルドをし直すことを試みてください。

EAS Buildには30日の期限がある

これを知らなくてハマりました。EAS Buildで作ったiOSのビルドには30日の有効期限があります。30日を過ぎるとインストールできなくなります。

# ビルドの期限確認
# Expo のダッシュボードで確認できる
# https://expo.dev/accounts/[username]/projects/[project]

# または eas build:list で一覧表示
eas build:list --platform ios

定期的に使うアプリの場合、30日ごとに再ビルドが必要になります。

? POINT

TestFlight経由で配布すると90日の有効期限になります。チームや社内で使うアプリなら--profile previewでビルドしてTestFlight経由で配布する方が管理が楽です。
キラ
キラ
「先月ビルドしたのになんで動かないの?」→ 30日経ってた、という落とし穴。カレンダーに再ビルド予定を入れておくのがいい。

証明書(Certificate)を再利用する方法

EAS BuildでiOS向けにビルドすると、証明書の選択を聞かれます。既存の証明書がある場合は再利用することをおすすめします。新しい証明書を作ると、以前のビルドが全て無効になります。

# eas build 実行時の選択肢例
? How do you want to validate your account?
  > Apple ID and password

# 証明書の選択
? Would you like to use an existing Distribution Certificate?
  > Yes, use the existing certificate
    No, generate a new certificate  # これを選ぶと以前のビルドが全部無効に!

# 既存証明書の確認
# Apple Developer Console → Certificates で確認
# 有効期限(Expiry Date)を確認する

⚠️ 注意

チームで開発している場合、誰かが証明書を新規作成すると、他のメンバーが持っているビルドが全て無効になります。証明書の管理はチームで共有・相談してから行うこと。
スカイ
スカイ
証明書の新規作成は「全員のビルドを無効にする」くらい影響が大きい。チームでやるなら必ず相談してから。

? iOSビルドのチェックリスト
  • 「integrity could not be verified」→ まずビルドをし直す(30日期限・プロビジョニング期限)
  • EAS Buildには30日の有効期限がある。TestFlight経由なら90日
  • 証明書は既存のものを再利用する。新規作成すると以前のビルドが全て無効に
  • チームで使う場合、証明書の管理はチームで共有・相談してから行う

iOSのビルド周りは最初は複雑に見えますが、「証明書・プロビジョニング・UDIDの3つの仕組みを理解する」だけで大半の問題は解決できます。

Recommended
ブログを始めるならConoHa WINGが最速
エンジニアの技術メモをブログで発信して収益化。月1,000円以下で始められます。
▶ ConoHa WINGを見てみる
※ アフィリエイトリンクです
Next
次回:「モバイルエンジニアが実際に使っているツール・ライブラリ【全部公開】」
Raw Ambition 始動から15日目

コメント

タイトルとURLをコピーしました