# React Native OTAアップデートガイド

React NativeのOTAアップデートの仕組み、ネイティブ変更との境界、差分配信、段階的リリースと復旧方法を説明します。Expo、CodePush、Paktaの導入経路を比較できます。

## React Native OTA アップデートとは何ですか? {#what-is-ota}

React Native の無線 (OTA) アップデートは、JavaScript とバンドルされたアセットをすでにインストールされているアプリに配信します。インストールされたネイティブ ランタイムは、その更新を実行できる必要があります。 Pakta は、`rn-update` SDK および `pakta` CLI を使用して、これらの更新を Android、iOS、HarmonyOS アプリ (Android および iOS 上のネイティブ Expo ビルドを含む) に公開します。

たとえば、画面ラベルを変更すると、OTA リリースに適合させることができます。ネイティブ カメラ モジュールを追加するには、まず新しいネイティブ ビルドが必要です。 OTA 配信は、ネイティブ リリースやストアの要件を置き換えるものではありません。

## 無線で送信できる変更はどれですか? {#compatibility}

|変更 |配送経路 |公開前に確認してください |
| --- | --- | --- |
| JavaScript のバグ修正または画面コピー | OTA候補 |インストールされているアプリに既に含まれているネイティブ API のみを使用します。
|バンドルされた画像またはスタイル | OTA候補 |アセットはリリース ビルドに含まれ、レンダリングされます |
|ネイティブ ライブラリ、権限、または構成プラグインの変更 |新しいネイティブ ビルド |新しいベースラインを再構築、配布、登録する |
| React Native、Expo SDK、Hermes のアップグレード |新しいネイティブ ビルドを計画する |結果として得られるネイティブ ランタイムを検証し、バンドルします。
|流通チャネルのアイデンティティ |新しい Pakta ネイティブ ビルド |チャネルはインストーラーに埋め込まれています。

Expo では、[ランタイム バージョン ](https://docs.expo.dev/eas-update/runtime-versions/)。 Pakta は独自のネイティブ パッケージのターゲティングと互換性チェックを使用します。 Expo `runtimeVersion` は Pakta 展開パラメータではありません。

## Pakta はどのようにアップデートを配信しますか? {#delivery}

1. `rn-update` をアプリに統合し、リリース インストーラーを作成します。
2. 正確にインストールされたネイティブ パッケージを更新ベースラインとして登録します。
3. CLI を使用して、互換性のある JavaScript とアセットを含む `.ppk` をビルドします。
4. 目的のアプリケーション、チャネル、ネイティブ バージョンに公開します。
5. アプリは資格を確認し、アップデートをダウンロードし、設定された戦略に従ってアクティベートします。
6. ロールアウトを増やす前に、ダウンロード、アクティベーション、およびヘルス イベントを観察します。

有用なパッチが利用可能な場合、差分配信によりダウンロードされるバイト数を減らすことができます。完全なパッケージはフォールバックのままです。節約量はベースラインと変更されたコンテンツによって異なります。 [最初のリリースのウォークスルー](/docs/publish)および[製品チェックリスト](/docs/bestpractice)を参照してください。

## あなたのアプリに適した OTA アプローチはどれですか? {#choose}

|出発点 |評価 |最初の決定 |
| --- | --- | --- |
|既存の EAS 更新ワークフロー | EAS Update とそのランタイム/チャネル モデル | OTAクライアントの変更は必要ですか? |
| Microsoft CodePush を使用したアプリ |スタンドアロン CodePush または代替 SDK |既存のクライアント プロトコルを保持する必要がありますか? |
| Pakta を評価する React Native またはネイティブ Expo アプリ | `rn-update` および Pakta リリース管理 |新しいネイティブ ビルドを出荷して互換性を検証できますか? |
| HarmonyOS React Native アプリ | Pakta の HarmonyOS 統合 |ネイティブ ツールチェーンと署名されたデバイス ビルドを検証する |

統合を選択する前に、[Expo アップデートの比較 ](/docs/expo-updates-vs-pakta) または [CodePush 移行ガイド ](/docs/codepush-alternative) をお読みください。実際のランタイム サポート、回復動作、運用上の責任を比較し、独自のアプリをテストします。

## OTA アップデートをどのようにテストすればよいでしょうか? {#verify}

Metro を切断した状態で実際のリリース ビルドを使用します。表示されているラベルを 1 つ変更し、内部チャネルに公開し、更新を確認して、選択した戦略を使用してアクティブ化します。予想される更新ハッシュとバージョンを確認し、オフライン起動と回復をテストします。開発のリロードだけでは OTA 配信は検証されません。

小規模な[段階的リリース](/docs/channels)から始め、[バージョン別の健全性](/docs/analytics)を監視し、互換性を確認した安定版パッケージを保持してください。配信を停止しても、それまでにデバイスへインストールされた更新は削除されません。

## OTA はアプリストアのリリースを置き換えることができますか? {#native-release}

互換性のある JavaScript とアセットの変更を、準備されたネイティブ アプリに配信できます。欠落しているネイティブ コードを追加したり、古いバイナリに OTA SDK をインストールしたり、そのバイナリを新しいネイティブ ランタイムに移動したりすることはできません。配布前に[ストアリリースチェックリスト](/docs/bestpractice#store-review)を確認してください。

まずは[クイックスタート](/docs/introduction)を確認し、[Expoの設定](/docs/expo)または[ネイティブ連携](/docs/getting-started)へ進んでください。
