CodePush Management SDK
重要
Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。
プログラムによって App Center アカウントを管理するための JavaScript ライブラリ (アプリの作成、リリースの昇格など) 。 これにより、CLI にシェルアウトすることなく、Node.js ベースのビルドまたはデプロイ スクリプトを作成できます。
作業の開始
次の App Center コマンドを使用して、App Center サーバーで認証するトークンを作成します。
appcenter tokens create -d "DESCRIPTION_OF_THE_KEY"
API Token
は 1 回だけ表示されるため、必要に応じてどこかに保存してください。次を実行して管理 SDK をインストールします。
npm install code-push --save
次のステートメント (該当する場合は ES6 構文を使用) を使用してインポートします。
- commonjs 環境では、次の手順を実行します。
const CodePush = require("code-push");
- tsconfig.jsonでの ES6 構文の使用:
import CodePush from "code-push";
クラスのインスタンスを作成し
CodePush
、手順 1 で作成したAPI Token
クラスを渡します。const codePush = new CodePush("YOUR_API_TOKEN");
アカウントの管理の自動化を開始します。 この
codePush
オブジェクトで実行できる操作の詳細については、以下の API リファレンスセクションを参照してください。
API リファレンス
モジュールは code-push
、プロキシを表す 1 つのクラス (通常は と呼ばれます CodePush
) を CodePush アカウント管理 REST API にエクスポートします。 このクラスには、CodePush サービスで認証するための 1 つのコンストラクターと、管理 CLI のコマンドに対応するインスタンス メソッドのコレクションがあり、これにより、App Center アカウントのすべての側面をプログラムで制御できます。
コンストラクター
- CodePush(accessKey: string) - 指定されたアクセス キーを使用して、サーバーで認証される CodePush 管理 SDK の新しいインスタンスを作成します。
メソッド
注意
access key
ここでは、AppCenter API トークンを参照します。
- addAccessKey(description: string): Promise<AccessKey> - 指定された説明 ("Azure DevOps CI" など) を使用して新しいアクセス キーを作成します。
- addApp(appName: string, os: string, platform: string, manuallyProvisionDeployments: boolean = false): Promise<App> - 指定した名前、os、プラットフォームを使用して新しい CodePush アプリを作成します。 が true に設定されている場合
manuallyProvisionDeployments
、アプリは "Staging" と "Production" の既定のデプロイを作成しません。指定されていない場合、または false に設定されている場合は作成されます。 - addCollaborator(appName: string, email: string): Promise<void> - 指定した CodePush ユーザーをコラボレーターとして指定された CodePush アプリに追加します。
- addDeployment(appName: string, deploymentName: string): Promise<デプロイ> - 指定した名前と、指定したアプリの新しいデプロイを作成します。
- clearDeploymentHistory(appName: string, deploymentName: string): Promise<void> - 指定したアプリ展開のリリース履歴をクリアします。
- getAccessKey(accessKey: string): Promise<AccessKey> - 特定のアクセス キーに関するメタデータを取得します。
- getAccessKeys(): Promise<AccessKey[]> - CodePush アカウントのアクセス キーの一覧を取得します。
- getApp(appName: string): Promise<アプリ> - 指定したアプリに関するメタデータを取得します。
- getApps(): Promise<App[]> - CodePush アカウントのアプリの一覧を取得します。
- getCollaborators(appName: string): Promise<CollaboratorMap> - 指定したアプリのコラボレーターの一覧を取得します。
- getDeployment(appName: string, deploymentName: string): Promise<デプロイ> - 指定したアプリのデプロイのメタデータを取得します。
- getDeploymentHistory(appName: string, deploymentName: string): Promise<Package[]> - 指定したアプリの展開に対して行われたリリースの一覧を取得します。
- getDeploymentMetrics(appName: string, deploymentName): Promise<DeploymentMetrics> - 指定したアプリのデプロイのインストール メトリックを取得します。
- getDeployments(appName: string): Promise<Deployment[]> - 指定したアプリのデプロイの一覧を取得します。
- patchRelease(appName: string, deploymentName: string, label: string, updateMetadata: PackageInfo): Promise<void> - 指定されたリリースのメタデータを指定された情報と共に更新します。
- promote(appName: string, sourceDeploymentName: string, destinationDeploymentName: string, updateMetadata: PackageInfo): Promise<void> - 指定したアプリのデプロイ間で最新のリリースを昇格させ、指定されたメタデータでリリースを更新します。
- release(appName: string, deploymentName: string, updateContentsPath: string, targetBinaryVersion: string, updateMetadata: PackageInfo): Promise<void> - 指定されたメタデータを使用して、指定されたデプロイに対する新しい更新プログラムをリリースします。
- removeAccessKey(accessKey: string): Promise<void> - CodePush アカウントから指定したアクセス キーを削除します。
- removeApp(appName: string): Promise<void> - 指定した CodePush アプリをアカウントから削除します。
- removeCollaborator(appName: string, email: string): Promise<void> - 指定したアカウントをコラボレーターとして指定したアプリから削除します。
- removeDeployment(appName: string, deploymentName: string): Promise<void> - 指定したアプリから指定したデプロイを削除します。
- renameApp(oldAppName: string, newAppName: string): Promise<void> - 既存のアプリの名前を変更します。
- renameDeployment(appName: string, oldDeploymentName: string, newDeploymentName: string): Promise<void> - 指定したアプリ内の既存のデプロイの名前を変更します。
- rollback(appName: string, deploymentName: string, targetRelease?: string): Promise<void> - 指定されたデプロイ内の最新リリースをロールバックします。 必要に応じて、前のリリースにローリングするのではなく、デプロイの履歴で特定のリリースをターゲットにできます。
エラー処理
いずれかのメソッドでエラーが発生すると、Promise は次のプロパティを持つ CodePushError オブジェクトで拒否されます。
- message: エラーを説明するわかりやすいメッセージ。
- statusCode: エラーのカテゴリを識別する HTTP 応答コード。
- CodePush.ERROR_GATEWAY_TIMEOUT: ネットワーク エラーにより、CodePush サーバーに接続できませんでした。
- CodePush.ERROR_INTERNAL_SERVER: CodePush サーバーで内部的にエラーが発生しました。
- CodePush.ERROR_NOT_FOUND: 取得しようとしているリソースが存在しません。
- CodePush.ERROR_CONFLICT: 作成しようとしているリソースが既に存在します。
- CodePush.ERROR_UNAUTHORIZED: 構成したアクセス キーが無効であるか、有効期限が切れています。