ExpoプロジェクトでOTAアップデートを使う
Expo Goの制約を確認し、Paktaのネイティブ連携、チャネル、Releaseビルドを設定して更新を配信します。
更新日 2026-09-15
目次
Expo 更新ワークフローを選択してください
このガイドでは、Expo OTA アップデートに Pakta の rn-update クライアントと pakta CLI を使用します。 expo-updates と EAS アップデートを比較する場合は、まず Expo アップデートと Pakta をお読みください。別の OTA クライアントから移行するには、バンドルのロードを担当する 1 つのシステムを備えた新しいネイティブ ビルドが必要です。
プロジェクトを準備する
Expo Go ではなく、ネイティブ Expo アプリを使用してください。このプロジェクトの iOS 自動統合には、Expo 50 以降が必要です。既存の互換性のある Expo/RN の組み合わせを維持します。
プロジェクト ルートからアプリケーションをインストールして選択します。
npx expo install rn-update
npm install -g rn-update-cli
pakta login
pakta selectApp --platform android必要に応じてコンソールでアプリケーションを作成するか、pakta createApp --platform android --name ExpoDemo を実行します。一致する ios アプリケーションを個別に選択します。
ルート レイアウトをラップする
Expo Router の場合、プロバイダーを既存の app/_layout.tsx に追加します。この最小限のスタックの例は、テーマ、フォント、認証設定とマージする必要があります。
import { Stack } from 'expo-router';
import { Platform } from 'react-native';
import { Pakta, UpdateProvider } from 'rn-update';
import updateConfig from '../update.json';
const configs = updateConfig as Record<string, { appKey: string }>;
const appKey = configs[Platform.OS]?.appKey;
if (!appKey) throw new Error(`Missing appKey for ${Platform.OS}`);
const client = new Pakta({ appKey, updateStrategy: 'silentAndLater' });
export default function RootLayout() {
return (
<UpdateProvider client={client}>
<Stack />
</UpdateProvider>
);
}src/app/_layout.tsx から ../../update.json をインポートします。Expo Routerを使わない場合は、標準のルートコンポーネント設定を参照してください。
オプション: チャネルを設定します
default については、このセクションをスキップしてください。 最初にコンソールでカスタムチャンネルを作成します。 rn-update には構成プラグインが含まれています。ローカルプラグインを作成しないでください。
このエントリを app.json の既存の expo.plugins 配列に追加します。
{
"expo": {
"plugins": [
["rn-update", { "channel": "staging" }]
]
}
}channel は、Android マニフェスト メタデータと iOS Info.plist に書き込まれます。 Android と iOS で異なるチャネルが必要な場合は、別のビルド構成を使用します。 default にはプラグイン エントリは必要ありません。
Release ビルドを作成して確認する
npx expo prebuild を実行し、生成された Android マニフェストまたは iOS plist で channel を確認します。 EAS Build は同じプラグインを実行します。
npx expo run:android --variant releasenpx expo run:ios --configuration Release既存の EAS 制作ワークフローも機能します。リリース アプリでホット アップデートを確認します。
更新をアップロードして公開する
デバイスにインストールされている正確な APK / IPA を保持し、
uploadApk/uploadIpaに登録します。 ネイティブ登録を参照してください。画面ラベルを変更し、アップデートをビルドします。
pakta bundle --platform android --expo --output .pakta/output/android.ppk --no-interactive最初のリリース に従い、ネイティブ インストーラーから解析されたチャネルとバージョンを使用します。
インストールされているリリース アプリをチェックインし、ダウンロードを待ち、完全に閉じて再度開き、変更されたラベルを確認します。
iOS の場合は、--platform ios と別の出力パスを使用します。ネイティブ プラグイン、チャネル、ネイティブ SDK の変更には、.ppk だけでなく、新しいインストーラーが必要です。
