APIトークンとCIからのリリース
権限を絞ったAPIトークンを作成し、CIシークレットとして管理して、非対話形式で安全に更新を配信します。
更新日 2026-09-14
最初にローカル リリースを確認してください
CIを自動化する前に、最初の更新を配信する手順と同じネイティブ基準、バンドルコマンド、配信対象をローカルで確認してください。これにより、ビルドの問題と認証の問題を切り分けられます。
API トークンを作成する
コンソールのサイドバーで API キー (/settings/tokens) を開きます。必要な権限、アプリケーションの範囲、有効期限を選択します。完全な値は 1 回だけ表示されます。 CI シークレットに直接保存します。
トークンは、選択したアクセス許可とアプリケーション スコープによって制限され、制限のないアカウント セッションと同等ではありません。 CLI は PAKTA_API_TOKEN を読み取り、x-api-token を送信します。対話型ログインではセッション トークンが使用されます。 SDK はパブリック appKey のみを使用します。
リリース構成の準備
アプリの package.json、ロックファイル、公開識別子のみを含む update.json、および targets.json をコミットします。 selectApp を使用してローカルで update.json を生成します。 CI の選択プロンプトに依存しないでください。
[
{ "channel": "default", "packageVersion": "1.0.0", "rollout": 10 }
]ローカル ノード、Metro/Hermes、およびプラットフォームの依存関係を一致させます。 iOS、HarmonyOS、またはカスタム Android ビルドと同じコマンドを実行できるランナーを選択します。汎用の Linux イメージだけでは必ずしも十分とは限りません。
GitHub アクションの例
これは既存のジョブのステップの一部であり、完全なワークフローではありません。チェックアウト、ノードおよび必要なツールチェーンが構成されていること、作業ディレクトリがアプリのルートであること、および CLI がローカルで使用されているのと同じバージョンでインストールされていることを前提としています。
- name: Install locked dependencies
run: |
npm ci
npm install -g rn-update-cli@1.1.0
- name: Verify identity and targets
env:
PAKTA_API_TOKEN: ${{ secrets.PAKTA_API_TOKEN }}
NO_INTERACTIVE: 'true'
run: |
pakta me
pakta publish .pakta/output/android.ppk --platform android --name "$GITHUB_RUN_ID" --targets targets.json --dryRun --no-interactive
- name: Bundle and publish
env:
PAKTA_API_TOKEN: ${{ secrets.PAKTA_API_TOKEN }}
NO_INTERACTIVE: 'true'
run: |
pakta bundle --platform android --output .pakta/output/android.ppk --no-interactive
pakta publish .pakta/output/android.ppk --platform android --name "$GITHUB_RUN_ID" --targets targets.json --sourcemap .pakta/intermedia/android/index.bundlejs.map --no-interactive実行ブロックは Bash を使用します。 Expo のバンドルに --expo を追加します。カスタム ソースマップ パスの一貫性を維持します。セルフホスティングの場合、RNU_SERVICE_URL を両方のステップの環境に追加します。
非対話型のリリースとリカバリ
選択プロンプトの代わりに、
--targets、ネイティブ--packageId、または--packageVersionを明示的に提供します。--dryRunはアップロード、チャンネルの作成、公開を行いません。それは成功したリリースではありません。返された更新パッケージ
packageIdとすべてのdeploymentIdsを保持します。障害によって再試行可能なデプロイメント ID が提供された場合は、その正確なターゲットを再開します。
pakta publish --deploymentIds DEPLOYMENT_ID_1,DEPLOYMENT_ID_2 --platform android --no-interactiveプレースホルダー ID を置き換えます。無関係なドラフトを推測しないでください。並列ジョブが互いに置き換えられないように、アプリケーションおよびターゲットごとにデプロイメントをシリアル化します。同じビルドからのパッケージ、マップ、コミット、およびパブリッシュの出力をアーカイブします。
完了チェック
パイプラインが正常に終了し、コンソールに想定した配信対象が表示され、対応するデバイスで更新が有効になったことを確認してください。アップロード完了だけでは配信成功とはいえません。分析とテレメトリーも確認してください。
トークンメンテナンス
パイプラインごとに個別のトークンを発行します。未使用のトークンを取り消し、有効期限が切れる前にローテーションします。 CI シークレットを介して挿入し、update.json、アプリ、またはログを決して使用しないでください。認証に失敗した場合は、有効期限、失効、スコープ、権限を確認し、me で本人確認を行います。
