ドキュメント概要

CLIコマンドリファレンス

アプリの選択、チャネル管理、ネイティブビルド登録、更新パッケージ作成と配信に使うCLIコマンドを説明します。

更新日 2026-09-14

目次

最初のリリースを完了してから、このコマンド リファレンスを使用してください。アプリのルートからコマンドを実行します。バックスラッシュの継続は Bash / zsh 用です。 PowerShell で 1 行を使用します。

CLI をインストールする

bash
npm install -g rn-update-cli

インストール後は pakta <command> でコマンドを実行します。Node.js 18.17以上が必要です。ログインと初期設定は最初の更新を配信する手順を参照してください。

コマンドクイックリファレンス

目的コマンド
アカウントloginlogoutme
アプリcreateAppappsselectAppdeleteApp
チャンネルchannelscreateChannelupdateChanneldeleteChannel
ネイティブパッケージuploadApkuploadAabuploadIpauploadApppackagesdeletePackage
解析parseApkparseAabparseIpaparseAppextractApk
太田bundlepublishversionsupdateupdateVersionInfodeleteVersion
差分hdiffhdiffFromApkhdiffFromIpahdiffFromAppregisterPdiff
診断symbolicatecachecache clean

pakta list は、使用可能なコマンドを出力します。以下の正規のオプション名を使用してください。

バンドル

.ppk 更新パッケージを生成します (JS バンドルとアセットのみ)。

bash
pakta bundle --platform android --output .pakta/output/android.ppk --no-interactive

主なオプション:

  • --platform ios|android|harmony — ターゲット プラットフォーム。

  • --output.ppk 出力パス。タイムスタンプ付きのファイル名を避けるために固定します。

  • --entryFile — エントリ スクリプト (デフォルトでは、index.js。Expo 用に推論されます)。

  • --dev true — 開発バンドルを構築します。

  • --sourcemap / デフォルトで生成 — エルメス プロジェクトは、最終的なマッピングを自動的に構成します。

  • --hermesBase auto|none|<path> — ヘルメスのベースライン戦略。 auto は履歴ベースラインを再利用してパッチを縮小し、none を無効にするか、明示的な .hbc/.ppk/.apk/.ipa を渡します。

  • --expo — Expo プロジェクトのバンドル。

  • --name — 存在する場合、バンドル直後に公開が開始されます。

更新を公開する

bash
pakta publish <ppk-path> \
  --platform android --name fix-001 \
  --channel default --packageVersion 1.0.0 --rollout 10 \
  --sourcemap .pakta/intermedia/android/index.bundlejs.map
  • ターゲット フォームを 1 つ選択します: --targets targets.json (マルチチャネル)、--packageId (ネイティブ パッケージ ID からターゲットを解決)、または --channel + --packageVersion (単一ターゲット)。

  • --rollout を省略すると 100% を意味します。 targets.json の行ごとの rollout はグローバル値をオーバーライドします。

  • --dryRun プリフライト: 何も書き込まずにターゲットとパーセンテージを解決します。

  • --deploymentIds id1,id2: 失敗した展開を正確に再試行します。

  • --sourcemap: 後の symbolicate のためにソースマップをアーカイブします。

パブリッシュでは 2 つの独立したオブジェクトが生成されます。アップロード時に登録された スリム ネイティブ ベースライン と、現在アップロードされた .ppk です。完全なストア バイナリがそのままアップロードされることはありません。公開後、プラットフォームは、チャネル × ネイティブ バージョン グループ内の正確なビルドごとに 1 つのトランザクションで差分ジョブを作成します。ジョブが終了するまで、checkUpdate は完全なパッケージに戻ります。

バージョンと差分

bash
pakta versions                     # list versions

ローカル hdiff/hdiffFromApk/hdiffFromIpa/hdiffFromApp はパッチ ファイルのみを生成します。正確なネイティブ ビルドにパッチをアタッチするには、後で registerPdiff 経由で登録します (deploymentId + nativeVersionId によって正確にバインドされ、同じバージョンの別のビルドに誤って配信されることはありません)。

診断

bash
pakta symbolicate stack.txt --platform android --hash <UPDATE_HASH>

hash はSDKの getUpdateMetadata().currentVersion から取得します。--versionId も指定できます。- を指定すると標準入力からスタックを読み込みます。cache clean はローカルのHermes基準バイトコードキャッシュを削除します。

環境変数

変数目的
RNU_SERVICE_URLセルフホステッド サービス アドレス (/admin/api/v1 自動的に追加)
PAKTA_API_TOKENCI 用の個人アクセストークンです。API キーを参照してください。
NO_INTERACTIVE=trueすべてのプロンプトを無効にする
RNU_LANGzh (デフォルト) または en
RNU_DEBUG=1エラースタックを出力する
HTTPS_PROXY / HTTP_PROXY / NO_PROXYプロキシ設定 (小文字を受け入れます)
PAKTA_CACHE_DIRhermes ベースライン キャッシュ ディレクトリ
PAKTA_HERMES_PROBE_TIMEOUT_MSと兄弟ヘルメスのプローブ/検証/コンパイル期限 (ミリ秒)
RNU_AUTO_UPDATE=0CLI バックグラウンド自己更新を無効にする

プログラム API

ビルド スクリプトはコマンド ラインをスキップして、エクスポートされたプロバイダーを直接使用できます。

typescript
import { CLIProviderImpl } from 'rn-update-cli';

const provider = new CLIProviderImpl();
const bundle = await provider.bundle({
  platform: 'android',
  output: '.pakta/output/android.ppk',
  sourcemap: true,
});
if (!bundle.success) throw new Error(bundle.error);

const release = await provider.publish({
  filePath: '.pakta/output/android.ppk',
  sourcemap: '.pakta/intermedia/android/index.bundlejs.map',
  platform: 'android',
  name: 'fix-001',
  targets: 'targets.json',
});
if (!release.success) throw new Error(release.error);

結果は CommandResult オブジェクトです。data を使用する前に、success を確認してください。

似ている ID

publish --packageId 入力は、ターゲットを解決するために使用されるネイティブ パッケージ ID です。返された packageId は、更新パッケージを識別します。出力 ID をそのオプションに入力しないでください。複数のターゲットの場合は targets.json を優先し、再試行の場合は deploymentIds を返します。