React Native Client SDK API リファレンス
重要
Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。
CodePush プラグインは、次の 2 つのコンポーネントで構成されています。
インポートまたは必須の JavaScript モジュール。実行時にアプリがサービスと対話できるようにします (たとえば、更新プログラムの確認、現在実行中のアプリの更新に関するメタデータの検査)。
React Native アプリ ホストが適切な JS バンドルの場所で自身をブートストラップできるようにするネイティブ API (Objective-C および Java)。
次のセクションでは、これらの API の形状と動作について詳しく説明します。
JavaScript API リファレンス
react-native-code-push
が必要な場合、モジュール オブジェクトには、ルート レベルの component デコレーターに加えて、次の最上位レベルのメソッドが用意されています。
allowRestart: 更新プログラムがインストールされた結果としてプログラムによる再起動が実行されるように Reallows し、再起動が許可されていない間に保留中の更新プログラムがアプリの再起動を試みた場合は、必要に応じてすぐにアプリを再起動します。 このメソッドは高度な API であり、アプリが
disallowRestart
メソッドを介して再起動を明示的に禁止した場合にのみ必要です。checkForUpdate: 構成されたアプリのデプロイに更新プログラムが利用可能かどうかを CodePush サービスに確認します。
disallowRestart: CodePush 更新プログラムがインストールされた結果、プログラムによる再起動が発生することを一時的に禁止します。 このメソッドは高度な API であり、アプリ内のコンポーネント (オンボード プロセスなど) で、その有効期間中にエンドユーザーの中断が発生しないようにする必要がある場合に便利です。
getCurrentPackage: 現在インストールされている更新プログラム (説明、インストール時間、サイズなど) に関するメタデータを取得します。
Note
CodePush モジュールの
v1.10.3-beta
時点で、getCurrentPackage
はgetUpdateMetadata
*を優先して非推奨となりました。getUpdateMetadata: インストールされている更新プログラムのメタデータ (説明、必須など) を取得します。
notifyAppReady: インストールされている更新プログラムが成功したと見なされることを CodePush ランタイムに通知します。 更新プログラムを手動で確認してインストールする場合 ( sync メソッドを使用してすべて処理しない場合)、このメソッド MUST 呼び出されます。それ以外の場合、CodePush は更新プログラムを失敗として処理し、アプリの次回再起動時に以前のバージョンにロールバックします。
restartApp: アプリを直ちに再起動します。 保留中の更新がある場合は、すぐにエンド ユーザーに表示されます。 それ以外の場合、このメソッドの呼び出しは、エンド ユーザーによるプロセスの強制終了と再起動と同じ動作になります。
sync: 更新プログラムの確認、ダウンロード、インストールを 1 回の呼び出しで行うことができます。 カスタム UI または動作が必要な場合を除き、ほとんどの開発者は CodePush をアプリに統合するときにこのメソッドを使用することをお勧めします
codePush
// Wrapper function
codePush(rootComponent: React.Component): React.Component;
codePush(options: CodePushOptions)(rootComponent: React.Component): React.Component;
// Decorator; Requires ES7 support
@codePush
@codePush(options: CodePushOptions)
アプリの JavaScript バンドルとイメージ アセットをマウント時に同期する方法を認識する "上位の" React コンポーネント内で React コンポーネントをラップするために使用されます。 内部的には、上位コンポーネントはsync
componentDidMount
ライフサイクル ハンドル内で呼び出します。更新プログラムのチェックが実行され、更新プログラムが存在する場合は更新プログラムがダウンロードされ、更新プログラムが自動的にインストールされます。
このデコレーターは、さまざまな要件を持つアプリを簡単に有効にするために動作をカスタマイズできるようにするためのサポートを提供します。 次に、それを使用する方法の例をいくつか示します (1 つ選択することも、組み合わせて使用することもできます)。
アプリ起動時のサイレント同期 (最も単純な既定の動作)。 アプリは、使用可能な更新プログラムを自動的にダウンロードし、次回アプリが再起動されたとき (OS やエンド ユーザーが強制終了した、デバイスが再起動された場合など) に適用します。 これにより、更新プログラムのプロンプトや "合成" アプリの再起動が表示されないため、更新エクスペリエンス全体がエンド ユーザーに "サイレント" になります。
// Fully silent update that keeps the app in // sync with the server, without ever // interrupting the end user class MyApp extends Component {} MyApp = codePush(MyApp);
アプリが再開されるたびにサイレント同期が行われます。 1 と同じですが、更新プログラムをチェックする以外は、"バックグラウンド" の後にアプリがフォアグラウンドに戻るたびに更新プログラムが存在する場合は更新プログラムを適用します。
// Sync for updates every time the app resumes. class MyApp extends Component {} MyApp = codePush({ checkFrequency: codePush.CheckFrequency.ON_APP_RESUME, installMode: codePush.InstallMode.ON_NEXT_RESUME })(MyApp);
対話形式。 更新プログラムが利用可能になったら、ダウンロードする前にエンド ユーザーにアクセス許可を求め、すぐに更新プログラムを適用します。
mandatory
フラグを使用して更新プログラムがリリースされた場合でも、エンド ユーザーには更新プログラムに関する通知が表示されますが、無視する選択肢はありません。// Active update that lets the end user know // about each update, and displays it to them // immediately after downloading it class MyApp extends Component {} MyApp = codePush({ updateDialog: true, installMode: codePush.InstallMode.IMMEDIATE })(MyApp);
進行状況のログ/表示。 アプリが更新のためにサーバーと同期している間は、
codePushStatusDidChange
またはcodePushDownloadDidProgress
イベント フックを使用して、このプロセスのさまざまなステージをログに記録したり、進行状況バーをユーザーに表示したりします。// Make use of the event hooks to keep track of // the different stages of the sync process. class MyApp extends Component { codePushStatusDidChange(status) { switch(status) { case codePush.SyncStatus.CHECKING_FOR_UPDATE: console.log("Checking for updates."); break; case codePush.SyncStatus.DOWNLOADING_PACKAGE: console.log("Downloading package."); break; case codePush.SyncStatus.INSTALLING_UPDATE: console.log("Installing update."); break; case codePush.SyncStatus.UP_TO_DATE: console.log("Up-to-date."); break; case codePush.SyncStatus.UPDATE_INSTALLED: console.log("Update installed."); break; } } codePushDownloadDidProgress(progress) { console.log(progress.receivedBytes + " of " + progress.totalBytes + " received."); } } MyApp = codePush(MyApp);
CodePushOptions
codePush
デコレーターは、上記の既定の動作のさまざまな側面をカスタマイズできる "options" オブジェクトを受け入れます。
checkFrequency (codePush.CheckFrequency) - 更新プログラムを確認するタイミングを指定します。 既定値は
codePush.CheckFrequency.ON_APP_START
です。 使用可能なオプションとその機能の説明については、CheckFrequency
列挙型リファレンスを参照してください。deploymentKey (String) - 更新プログラムのクエリを実行する展開キーを指定します。 既定では、この値は Info.plist ファイル (iOS) と MainActivity.java ファイル (Android) から派生しますが、別のデプロイを動的に使用する必要がある場合は、このオプションをスクリプト側からオーバーライドできます。
installMode (codePush.InstallMode) - オプションの更新プログラム (必須としてマークされていない更新プログラム) をインストールするタイミングを指定します。 既定値は
codePush.InstallMode.ON_NEXT_RESTART
です。 使用可能なオプションとその機能の説明については、InstallMode
列挙型リファレンスを参照してください。mandatoryInstallMode (codePush.InstallMode) - 更新プログラムをインストールするタイミングを指定します。これは必須としてマークされます。 既定値は
codePush.InstallMode.IMMEDIATE
です。 使用可能なオプションとその機能の説明については、InstallMode
列挙型リファレンスを参照してください。minimumBackgroundDuration (Number) - アプリを再起動する前に、アプリがバックグラウンドで実行される最小秒数を指定します。 このプロパティは、
InstallMode.ON_NEXT_RESUME
またはInstallMode.ON_NEXT_SUSPEND
を使用してインストールされた更新プログラムにのみ適用され、あまり目立たないように、エンド ユーザーの前で更新プログラムを取得する場合に役立ちます。 既定値は0
で、再開直後に更新プログラムが適用されます。または、アプリの中断が問題にならないほど長い場合を除き、バックグラウンドで実行されます。updateDialog (UpdateDialogOptions) - 更新プログラムが利用可能な場合に確認ダイアログをエンド ユーザーに表示する必要があるかどうかを判断するために使用される "options" オブジェクトと、使用する文字列。 既定値は
null
で、ダイアログが無効になります。 これを任意のtrue
値に設定すると、既定の文字列でダイアログが有効になり、このパラメーターにオブジェクトを渡すと、ダイアログを有効にしたり、1 つ以上の既定の文字列をオーバーライドしたりできます。 App Store 分散アプリ内でこのオプションを有効にする前に、この注意事項 参照してください。次の一覧は、使用可能なオプションとその既定値を表しています。
appendReleaseDescription (Boolean) - エンド ユーザーに表示される通知メッセージに、使用可能なリリースの説明を追加するかどうかを示します。 既定値は
false
です。descriptionPrefix (String) - エンド ユーザーに更新通知を表示するときに、リリースの説明にプレフィックスを付ける文字列 (存在する場合) を示します。 既定値は
" Description: "
ですmandatoryContinueButtonLabel (String) - 必須の更新プログラムをインストールするためにエンド ユーザーが押す必要があるボタンに使用するテキスト。 既定値は
"Continue"
です。mandatoryUpdateMessage (String) - 更新が必須として指定されている場合に、更新通知の本文として使用されるテキスト。 既定値は
"An update is available that must be installed."
です。optionalIgnoreButtonLabel (String) - エンド ユーザーが押すことができるボタンに使用するテキストは、使用可能なオプションの更新を無視します。 既定値は
"Ignore"
です。optionalInstallButtonLabel (String) - エンド ユーザーが押してオプションの更新プログラムをインストールできるボタンに使用するテキスト。 既定値は
"Install"
です。optionalUpdateMessage (String) - 更新が省略可能な場合に、更新通知の本文として使用されるテキスト。 既定値は
"An update is available. Would you like to install it?"
です。title (String) - エンド ユーザーに表示される更新通知のヘッダーとして使用されるテキスト。 既定値は
"Update available"
です。
rollbackRetryOptions (RollbackRetryOptions) - ロールバック再試行メカニズムにより、アプリケーションは以前にロールバックされた更新プログラムを (オプションで指定された制限を使用して) 再インストールを試みることができます。 これは、ロールバック再試行を行う必要があるかどうかを判断するために使用される "オプション" オブジェクトであり、実行する場合はロールバック再試行に使用する設定を決定します。 既定値は null で、再試行メカニズムを無効にする効果があります。 これを信頼できる値に設定すると、既定の設定で再試行メカニズムが有効になり、このパラメーターにオブジェクトを渡すと、ロールバックの再試行を有効にしたり、1 つ以上の既定値をオーバーライドしたりできます。
次の一覧は、使用可能なオプションとその既定値を表しています。
delayInHours (Number) - 同じロールバック パッケージを再インストールする前に、最新のロールバック後にアプリが待機する最小時間 (時間単位) を指定します。
0
未満にすることはできません。 浮動小数点数を指定できます。 既定値は24
です。maxRetryAttempts (Number) - アプリが試行を停止するまでに実行できる再試行の最大数を指定します。
1
未満にすることはできません。 既定値は1
です。
codePushStatusDidChange (イベント フック)
同期プロセスが更新プロセス全体で 1 つのステージから別のステージに移動したときに呼び出されます。 イベント フックは、現在の状態を表す状態コードを使用して呼び出され、 SyncStatus
値のいずれかを指定できます。
codePushDownloadDidProgress (イベント フック)
利用可能な更新プログラムが CodePush サーバーからダウンロードされるときに定期的に呼び出されます。 このメソッドは、次の 2 つのプロパティを含む DownloadProgress
オブジェクトを使用して呼び出されます。
totalBytes (Number) - この更新プログラムで受信される予定の合計バイト数 (以前のリリースから変更された一連のファイルのサイズ)。
receivedBytes (Number) - ダウンロードの進行状況を追跡するために使用できる、これまでにダウンロードしたバイト数。
codePush.allowRestart
codePush.allowRestart(): void;
プログラムによる再起動が実行されるように Reallows が実行されます。それ以外の場合は、以前の disallowRestart
呼び出しのために拒否されました。 最初に disallowRestart
が呼び出されなかった場合、このメソッドを呼び出すと操作が行われません。
CodePush 更新プログラムが現在保留中で、アプリの再起動が試行された場合 (たとえば、 InstallMode.IMMEDIATE
を使用)、 disallowRestart
が呼び出されたためにブロックされた場合、 allowRestart
を呼び出すと、すぐに再起動されます。 この再起動により、重要なワークフロー (オンボード プロセスなど) 中にエンド ユーザーを中断することなく、できるだけ早く更新プログラムを適用できます。
たとえば、allowRestart
を呼び出すと、disallowRestart
ドキュメントで説明されている 3 つのシナリオのいずれかがdisallowRestart
が呼び出された後に発生した場合、すぐに再起動がトリガーされます。 ただし、次の点に該当する場合、 allowRestart
を呼び出しても再起動はトリガーされません。
前回
disallowRestart
が呼び出されてから CodePush 更新プログラムがインストールされていないため、再起動する必要はありません。現在、保留中の CodePush 更新プログラムがありますが、
InstallMode.ON_NEXT_RESTART
経由でインストールされているため、プログラムによる再起動は必要ありません。現在、保留中の CodePush 更新プログラムがありますが、
InstallMode.ON_NEXT_RESUME
経由でインストールされており、アプリはまだバックグラウンドに配置されていないため、プログラムを使用して再起動する必要はありません。最後に
disallowRestart
が呼び出されてから、restartApp
への呼び出しは行われませんでした。
この動作により、許可されていない期間中に明示的に要求されない限り、 allowRestart
を呼び出した結果として再起動がトリガーされなくなります。 このように、 allowRestart
は restartApp(true)
の呼び出しに似ていますが、前者は現在保留中の更新プログラムを再起動する場合にのみ再起動をトリガーしますが、後者は更新が保留中である限り再起動します。
このメソッドの使用方法の例については disallowRestart を参照してください。
codePush.checkForUpdate
codePush.checkForUpdate(deploymentKey: String = null, handleBinaryVersionMismatchCallback: (update: RemotePackage) => void): Promise<RemotePackage>;
CodePush サービスに対してクエリを実行して、構成されたアプリのデプロイに更新プログラムが利用可能かどうかを確認します。 既定では、 Info.plist ファイル (iOS) または MainActivity.java ファイル (Android) で構成されているデプロイ キーが使用されますが、オプションの deploymentKey
パラメーターを使用して値を指定することでオーバーライドできます。 これは、イースター エッグやユーザー設定スイッチを介して "早期アクセス" を許可するなど、ユーザーを特定のデプロイに動的に "リダイレクト" する場合に役立ちます。
2 番目の省略可能なパラメーター handleBinaryVersionMismatchCallback
は、バイナリ更新がある場合にユーザーに通知するために使用できる省略可能なコールバック関数です。
たとえば、現在インストールされているバイナリ バージョンが 1.0.1 で、ラベル (コード プッシュ ラベル) v1 が含まれたユース ケースを考えてみましょう。 開発サイクルで後のネイティブ コードが変更され、バイナリ バージョンが 1.0.2 に更新されました。 codepush 更新チェックがトリガーされると、バイナリ バージョンが一致しない更新プログラムは無視されます (更新プログラムは現在インストールされているアプリのバイナリ バージョンを対象としていないため)。 この場合、インストールされているアプリ (1.0.1) は、バージョン 1.0.2 を対象とする更新プログラムを無視します。 handleBinaryVersionMismatchCallback
を使用して、このような状況を処理するためのフックを提供できます。
重要
iOS アプリケーションを開発する場合は、 App Store レビュー プロセスのため、このコールバック内でアラートを使用するように注意してください。アプリは、アプリの評価、アプリのレビュー、他のアプリのダウンロード、またはアプリの機能、コンテンツ、または使用に関する他の同様のアクションをユーザーに強制してはなりません。
このメソッドは Promise
を返します。これは、次の 2 つの可能な値のいずれかに解決されます。
null
利用可能な更新プログラムがない場合は〘。 これは、次のシナリオで発生することができます。- 構成されたデプロイにはリリースが含まれていないため、更新するものはありません。
- 構成済みデプロイ内の最新リリースでは、現在実行中のバージョン (古いバージョンまたは新しいバージョン) とは異なるバイナリ バージョンがターゲットになっています。
- 現在実行中のアプリには、構成済みのデプロイからの最新のリリースが既に含まれているため、再び必要ありません。
- 構成されたデプロイ内の最新リリースは現在無効としてマークされているため、ダウンロードは許可されません。
- 構成された展開内の最新のリリースは "アクティブなロールアウト" 状態であり、要求元のデバイスは、対象となるユーザーの割合に含まれません。
RemotePackage
インスタンス。検査または後でダウンロードできる利用可能な更新プログラムを表します。
使用例:
codePush.checkForUpdate()
.then((update) => {
if (!update) {
console.log("The app is up to date!");
} else {
console.log("An update is available! Should we download it?");
}
});
codePush.disallowRestart
codePush.disallowRestart(): void;
次のいずれかのシナリオの結果として、プログラムによる再起動を一時的に禁止します。
CodePush 更新プログラムは、次を使用してインストールされます。
InstallMode.IMMEDIATE
CodePush 更新プログラムは
InstallMode.ON_NEXT_RESUME
を使用してインストールされ、アプリはバックグラウンドから再開されます (必要に応じて、minimumBackgroundDuration
プロパティによって調整されます)。restartApp
メソッドが呼び出されましたNote
手順 1 と 2 は、
restartApp
を呼び出すことで効果的に機能するため、disallowRestart
は、アプリが直接または間接的に呼び出すかどうかにかかわらず、restartApp
への呼び出しをブロックしていると考えることができます。
このメソッドを呼び出した後も、 sync
の呼び出しで更新プログラムの確認、ダウンロード、インストールが許可されますが、 allowRestart
が呼び出されるまでアプリの再起動がキューに入れられます。 これにより、再起動要求がキャプチャされ、実行を許可するたびに "フラッシュ" できます。
これは高度な API であり、主にアプリ内の個々のコンポーネント (オンボーディング プロセスなど) で、有効期間中にエンド ユーザーの中断が発生しないようにする必要がある一方で、アプリが独自のペースで CodePush サーバーとの同期を維持し、適切なインストール モードを使用できるようにする必要がある場合に便利です。 これには、アプリが利用可能な更新プログラムをできるだけ早く検出してダウンロードできるだけでなく、主要なエンド ユーザー エクスペリエンス中の中断も防止できるという利点があります。
別の方法として、sync
を呼び出すたびにInstallMode.ON_NEXT_RESTART
を使用し (プログラムでアプリを再起動しようとすることはありません)、アプリ内の "安全" なポイントでrestartApp
を明示的に呼び出すこともできます。 disallowRestart
は、CodePush サーバーと同期するコードが、再起動なしのポリシーを適用するコード/コンポーネントとは別の場合に、これに代わる方法を提供します。
使用例:
class OnboardingProcess extends Component {
...
componentWillMount() {
// Ensure that any CodePush updates that are
// synchronized in the background can't trigger
// a restart while this component is mounted.
codePush.disallowRestart();
}
componentWillUnmount() {
// Reallow restarts, and optionally trigger
// a restart if one was currently pending.
codePush.allowRestart();
}
...
}
codePush.getCurrentPackage
Note
このメソッドは、CodePush モジュールの v1.10.3-beta
時点で非推奨と見なされます。 このバージョン (またはそれ以降) を実行している場合は、代わりに codePush.getUpdateMetadata
を使用することをお勧めします。これは、より予測可能な動作があるためです。
codePush.getCurrentPackage(): Promise<LocalPackage>;
現在インストールされている "パッケージ" に関するメタデータ (説明、インストール時間など) を取得します。 これは、更新プログラムが適用された後に "新着情報" ダイアログを表示したり、再開または再起動によって適用されるのを待っている保留中の更新があるかどうかを確認したりするシナリオに役立ちます。
このメソッドは Promise
を返します。これは、次の 2 つの可能な値のいずれかに解決されます。
null
アプリが現在、CodePush 更新ではなくバイナリから JS バンドルを実行している場合。 これは、次のシナリオで発生します。- エンド ユーザーがアプリ バイナリをインストールし、CodePush 更新プログラムをまだインストールしていない
- エンド ユーザーはバイナリの更新プログラム (ストアなど) をインストールしました。これによって古い CodePush 更新プログラムがクリアされ、バイナリ内の JS バイナリに優先順位が戻されました。
現在実行中の CodePush 更新プログラムのメタデータを表す
LocalPackage
インスタンス。
使用例:
codePush.getCurrentPackage()
.then((update) => {
// If the current app "session" represents the first time
// this update has run, and it had a description provided
// with it upon release, let's show it to the end user
if (update.isFirstRun && update.description) {
// Display a "what's new?" modal
}
});
codePush.getUpdateMetadata
codePush.getUpdateMetadata(updateState: UpdateState = UpdateState.RUNNING): Promise<LocalPackage>;
指定した updateState
パラメーターと一致する状態のインストール済み更新プログラム (説明、必須など) のメタデータを取得します。 これは、更新プログラムが適用された後に "新着情報" ダイアログを表示したり、再開または再起動によって適用されるのを待っている保留中の更新があるかどうかを確認したりするシナリオに役立ちます。 可能な更新状態と、その状態の詳細については、 UpdateState リファレンスを参照してください。
このメソッドは Promise
を返します。これは、次の 2 つの可能な値のいずれかに解決されます。
null
指定された状態の更新プログラムが現在存在しない場合。 これは、次のシナリオで発生します。エンド ユーザーが CodePush 更新プログラムをまだインストールしていないので、
updateState
パラメーターとして指定した更新プログラムではメタデータを使用できません。エンド ユーザーはバイナリの更新プログラム (ストアなど) をインストールしました。これによって古い CodePush 更新プログラムがクリアされ、バイナリ内の JS バイナリに優先順位が戻されました。 #1 と同じ動作を示します
updateState
パラメーターはUpdateState.RUNNING
に設定されていますが、アプリは現在 CodePush 更新プログラムを実行していません。 保留中の更新プログラムが存在する可能性がありますが、アプリをアクティブにするためにまだ再起動されていません。updateState
パラメーターはUpdateState.PENDING
に設定されていますが、アプリには現在保留中の更新はありません。
LocalPackage
インスタンス。現在要求されている CodePush 更新プログラム (実行中または保留中) のメタデータを表します。
使用例:
// Check if there's currently a CodePush update running, and if
// so, register it with the HockeyApp SDK (https://github.com/slowpath/react-native-hockeyapp)
// so that crash reports will correctly display the JS bundle version the user was running.
codePush.getUpdateMetadata().then((update) => {
if (update) {
hockeyApp.addMetadata({ CodePushRelease: update.label });
}
});
// Check to see if there's still an update pending.
codePush.getUpdateMetadata(UpdateState.PENDING).then((update) => {
if (update) {
// There's a pending update, do we want to force a restart?
}
});
codePush.notifyAppReady
codePush.notifyAppReady(): Promise<void>;
新しくインストールされた更新プログラムを成功と見なす必要があるため、クライアント側の自動ロールバックは必要ないことを CodePush ランタイムに通知します。 更新されたバンドルのコード内のどこかでこの関数を呼び出す必要があります。 それ以外の場合、アプリが次に再起動すると、CodePush ランタイムは、インストールされている更新プログラムが失敗したと見なして、以前のバージョンにロールバックします。 この動作は、エンド ユーザーが壊れた更新によってブロックされないようにするために存在します。
sync
関数を使用していて、アプリの起動時に更新チェックを実行している場合は、sync
が呼び出すので、notifyAppReady
を手動で呼び出す必要はありません。 この動作は、アプリで sync
が呼び出されると、正常な起動の適切な近似を表すという前提があるために存在します。
Note
このメソッドは、(下位互換性のために) notifyApplicationReady
としてもエイリアス化されます。
codePush.restartApp
codePush.restartApp(onlyIfUpdateIsPending: Boolean = false): void;
アプリを直ちに再起動します。 onlyIfUpdateIsPending
パラメーターに信頼できる値が指定されている場合、アプリは、適用を待機している保留中の更新プログラムが実際に存在する場合にのみ再起動します。
この方法は高度なシナリオ用であり、主に次の条件に該当する場合に役立ちます。
sync
またはLocalPackage.install
メソッドを呼び出すときに、アプリでインストール モードの値がON_NEXT_RESTART
またはON_NEXT_RESUME
指定されています。 これは、アプリが (エンド ユーザーまたは OS によって) 再起動されるか再開されるまで更新プログラムを適用しないため、更新プログラムはすぐにエンド ユーザーに表示されません。アプリ固有のユーザー イベント (エンド ユーザーがアプリのホーム ルートに戻った場合など) を使用すると、目立たない方法で更新プログラムを適用でき、次の再起動または再開まで待つよりも早くエンド ユーザーに更新プログラムを取得する可能性があります。
codePush.sync
codePush.sync(options: Object, syncStatusChangeCallback: function(syncStatus: Number), downloadProgressCallback: function(progress: DownloadProgress), handleBinaryVersionMismatchCallback: function(update: RemotePackage)): Promise<Number>;
アプリの JavaScript バンドルとイメージアセットを、構成済みのデプロイに対する最新リリースと同期します。 checkForUpdateメソッドとは異なり、更新プログラムの存在を確認し、次に何を行うかを制御しましょう。sync
は、更新プログラムのチェック、ダウンロード、インストールのエクスペリエンスを処理します。
この方法では、要件が異なるアプリを簡単に有効にするために、2 つの異なる (ただしカスタマイズ可能な) "モード" がサポートされます。
サイレント モード (既定の動作) 利用可能な更新プログラムを自動的にダウンロードし、次回アプリを再起動すると (OS やエンド ユーザーが強制終了したり、デバイスが再起動されたりした場合など) 適用されます。 これにより、更新プログラムのプロンプトや "合成" アプリの再起動が表示されないため、更新エクスペリエンス全体がエンド ユーザーに "サイレント" になります。
アクティブ モード更新プログラムが利用可能な場合は、ダウンロードする前にエンド ユーザーにアクセス許可を求め、その後すぐに更新プログラムを適用します。
mandatory
フラグを使用して更新プログラムがリリースされた場合でも、エンド ユーザーには更新プログラムに関する通知が表示されますが、無視する選択肢はありません。
使用例:
// Fully silent update that keeps the app in
// sync with the server, without ever
// interrupting the end user
codePush.sync();
// Active update, which lets the end user know
// about each update, and displays it to them
// immediately after downloading it
codePush.sync({ updateDialog: true, installMode: codePush.InstallMode.IMMEDIATE });
ヒント
エンド ユーザーのデバイスのバッテリ レベルやネットワーク条件などに基づいて利用可能な更新プログラムを確認またはダウンロードするかどうかを決定する場合は、必要なときにのみ呼び出す条件で sync
への呼び出しをラップします。
SyncOptions
sync
メソッドは、構成をほとんど行わないサイレント更新とアクティブ更新を簡単に行えるように試みますが、前述の既定の動作の多くの側面をカスタマイズできる "options" オブジェクトを受け入れます。 使用可能なオプションは、 CodePushOptions と同じですが、 checkFrequency
オプションは除きます。
deploymentKey (String) -
CodePushOptions
を参照してください。installMode (codePush.InstallMode) -
CodePushOptions
を参照してください。mandatoryInstallMode (codePush.InstallMode) -
CodePushOptions
を参照してください。minimumBackgroundDuration (Number) -
CodePushOptions
を参照してください。updateDialog (UpdateDialogOptions) -
CodePushOptions
を参照してください。rollbackRetryOptions (RollbackRetryOptions) -
CodePushOptions
を参照してください。
使用例:
// Use a different deployment key for this
// specific call, instead of the one configured
// in the Info.plist file
codePush.sync({ deploymentKey: "KEY" });
// Download the update silently, but install it on
// the next resume, as long as at least 5 minutes
// has passed since the app was put into the background.
codePush.sync({ installMode: codePush.InstallMode.ON_NEXT_RESUME, minimumBackgroundDuration: 60 * 5 });
// Download the update silently, and install optional updates
// on the next restart, but install mandatory updates on the next resume.
codePush.sync({ mandatoryInstallMode: codePush.InstallMode.ON_NEXT_RESUME });
// Changing the title displayed in the
// confirmation dialog of an "active" update
codePush.sync({ updateDialog: { title: "An update is available!" } });
// Displaying an update prompt which includes the
// description for the CodePush release
codePush.sync({
updateDialog: {
appendReleaseDescription: true,
descriptionPrefix: "\n\nChange log:\n"
},
installMode: codePush.InstallMode.IMMEDIATE
});
// Shortening the retry delay and increasing
// the number of maximum retry attempts
// in comparison to defaults
codePush.sync({
rollbackRetryOptions: {
delayInHours: 8,
maxRetryAttempts: 3
}
});
オプションに加えて、 sync
メソッドではいくつかの省略可能な関数パラメーターも受け取ります。これにより、必要に応じて追加の UI を表示する sync
"パイプライン" のライフサイクルをサブスクライブできます ("更新モーダルの確認やダウンロードの進行状況モーダル" など)。
syncStatusChangedCallback ((syncStatus: Number) => void) - 更新プロセス全体で同期プロセスが別のステージに移動したときに呼び出されます。 メソッドは、現在の状態を表す状態コードを使用して呼び出され、
SyncStatus
値のいずれかを指定できます。downloadProgressCallback ((progress: DownloadProgress) => void) - 利用可能な更新プログラムが CodePush サーバーからダウンロードされるときに定期的に呼び出されます。 このメソッドは、次の 2 つのプロパティを含む
DownloadProgress
オブジェクトを使用して呼び出されます。totalBytes (Number) - この更新プログラムで受信される予定の合計バイト数 (以前のリリースから変更された一連のファイルのサイズ)。
receivedBytes (Number) - ダウンロードの進行状況を追跡するために使用できる、これまでにダウンロードしたバイト数。
handleBinaryVersionMismatchCallback (update: RemotePackage) => void) - 利用可能なバイナリ更新がある場合に呼び出されます。 メソッドは、
RemotePackage
オブジェクトを使用して呼び出されます。 詳細については、 codePush.checkForUpdate セクションを参照してください。
使用例:
// Prompt the user when an update is available
// and then display a "downloading" modal
codePush.sync({ updateDialog: true },
(status) => {
switch (status) {
case codePush.SyncStatus.DOWNLOADING_PACKAGE:
// Show "downloading" modal
break;
case codePush.SyncStatus.INSTALLING_UPDATE:
// Hide "downloading" modal
break;
}
},
({ receivedBytes, totalBytes, }) => {
/* Update download modal progress */
}
);
このメソッドはPromise
を返します。これは、sync
呼び出しが成功した理由を示すSyncStatus
コードに解決されます。 このコードには、次のいずれかの SyncStatus
値を指定できます。
codePush.SyncStatus.UP_TO_DATE (4) - アプリは CodePush サーバーで最新の状態です。
codePush.SyncStatus.UPDATE_IGNORED (5) - アプリにオプションの更新があり、エンド ユーザーが無視するように選択しました。 (これは、
updateDialog
が使用されている場合にのみ適用されます)codePush.SyncStatus.UPDATE_INSTALLED (6) - 更新プログラムがインストールされ、
SyncOptions
で指定されたInstallMode
に応じて、syncStatusChangedCallback
関数が戻った直後または次回アプリが再開/再起動したときに実行されます。codePush.SyncStatus.SYNC_IN_PROGRESS (7) - 現在の呼び出しの実行を妨げる実行中の
sync
操作があります。
sync
メソッドは、更新プログラムを確認する任意の場所で呼び出すことができます。 これは、ルート コンポーネントの componentWillMount
ライフサイクル イベント、 <TouchableHighlight>
コンポーネントの onPress ハンドラー、定期的なタイマーのコールバック、またはニーズに適したその他のイベントである可能性があります。 checkForUpdate
メソッドと同様に、バックグラウンドで更新プログラムをチェックするネットワーク要求が行われます。そのため、UI スレッドや JavaScript スレッドの応答性には影響しません。
パッケージ オブジェクト
checkForUpdate
メソッドと getUpdateMetadata
メソッドは、解決されると "パッケージ" オブジェクトへのアクセスを提供するPromise
オブジェクトを返します。 パッケージは、コードの更新と追加のメタデータ (説明、必須など) を表します。 CodePush API では、次の種類のパッケージが区別されます。
LocalPackage: 既に実行されているか、インストールされていて、アプリの再起動が保留されているダウンロードされた更新プログラムを表します。
RemotePackage: まだダウンロードされていない CodePush サーバーで使用可能な更新プログラムを表します。
LocalPackage
ローカルにダウンロードされた、または既にインストールされている更新プログラムに関する詳細が含まれています。 モジュール レベルの getUpdateMetadata
メソッドを呼び出すか、 RemotePackage.download
メソッドによって返される promise の値として、このオブジェクトのインスタンスへの参照を取得できます。
プロパティ
- appVersion: この更新プログラムが依存しているアプリ バイナリ バージョン。 これは、CLI の
release
コマンドを呼び出すときに、appStoreVersion
パラメーターを使用して指定された値です。 (文字列) - deploymentKey: この更新プログラムを最初にダウンロードするために使用された展開キー。 (文字列)
- description: 更新プログラムの説明。 これは、更新プログラムをリリースしたときに CLI で指定した値と同じです。 (文字列)
- failedInstall: この更新プログラムが以前にインストールされているがロールバックされたかどうかを示します。
sync
メソッドは、以前に失敗した更新プログラムを自動的に無視するため、checkForUpdate
を使用している場合にのみ、このプロパティについて心配する必要があります。 (ブール値) - isFirstRun: インストール後に更新プログラムが初めて実行されたかどうかを示します。 これは、"新機能" を表示するかどうかを判断するのに役立ちます。更新プログラムをインストールした後のエンド ユーザーへの UI。 (ブール値)
- isMandatory: 更新が必須と見なされるかどうかを示します。 これは、更新プログラムがリリースされたときに CLI で指定された値です。 (ブール値)
- isPending: この更新プログラムが "保留中" 状態であるかどうかを示します。
true
場合は、更新プログラムがダウンロードされてインストールされていますが、適用するためにアプリの再起動が必要であり、まだ発生していないので、その変更は現在エンド ユーザーに表示されません。 (ブール値) - label: CodePush サーバーによって更新プログラムに自動的に付与される内部ラベル (
v5
など)。 この値は、展開内の更新プログラムを一意に識別します。 (文字列) - packageHash: 更新プログラムの SHA ハッシュ値。 (文字列)
- packageSize: 更新プログラムに含まれるコードのサイズ (バイト単位)。 (数値)
メソッド
- install(installMode: codePush.InstallMode = codePush.InstallMode.ON_NEXT_RESTART, minimumBackgroundDuration = 0): Promise<void>: ランタイムがアプリの最新バージョンを検索するディスク上の場所に保存することによって、更新プログラムをインストールします。
installMode
パラメーターは、変更がエンド ユーザーに表示されるタイミングを制御します。 既定値は、次のアプリが再起動するまで待機して変更を表示することですが、使用可能なオプションとその実行内容の説明については、InstallMode
列挙型リファレンスを参照できます。installMode
パラメーターがInstallMode.ON_NEXT_RESUME
に設定されている場合、minimumBackgroundDuration
パラメーターを使用すると、アプリが再開された後にインストールを強制する前に、アプリがバックグラウンドに存在する必要がある期間を制御できます。
RemotePackage
CodePush サーバーからダウンロードできる更新プログラムに関する詳細が含まれています。 更新プログラムが利用可能な場合は、 checkForUpdate
メソッドを呼び出して、このオブジェクトのインスタンスへの参照を取得します。 sync
API を使用している場合は、ダウンロードとインストールのプロセスが自動的に処理されるため、RemotePackage
について心配する必要はありません。
プロパティ
RemotePackage
は、LocalPackage
と同じプロパティをすべて継承しますが、さらに 1 つのプロパティが含まれます。
- downloadUrl: パッケージをダウンロードできる URL。 このプロパティは、
download
メソッドが自動的に更新プログラムの取得を処理するため、高度な使用にのみ必要です。 (文字列)
メソッド
- download(downloadProgressCallback?: Function): Promise<LocalPackage>: CodePush サービスから利用可能な更新プログラムをダウンロードします。
downloadProgressCallback
が指定されている場合は、ダウンロードの進行状況を報告するDownloadProgress
オブジェクト ({ totalBytes: Number, receivedBytes: Number }
) を使用して定期的に呼び出されます。LocalPackage
で解決される Promise を返します。
列挙型
CodePush API には、更新エクスペリエンスをカスタマイズするために使用できる次の列挙型が含まれています。
InstallMode
この列挙型は、インストールされている更新プログラムを実際に適用するタイミングを指定し、 sync
メソッドまたは LocalPackage.install
メソッドに渡すことができます。 これには次の値が含まれます。
codePush.InstallMode.IMMEDIATE (0) - 更新プログラムをインストールし、アプリを直ちに再起動することを示します。 この値は、インストールを受け入れた直後に変更が表示されることを想定するため、デバッグ シナリオや更新プロンプトをユーザーに表示する場合に適しています。 さらに、このモードを使用して必須の更新プログラムを適用できます。これは、更新プログラムのインストールと、エンド ユーザーが次回アプリを再起動または再開する際の間の望ましくない可能性のある待機時間を取り除くためです。
codePush.InstallMode.ON_NEXT_RESTART (1) - 更新プログラムをインストールするが、アプリを強制的に再起動しないことを示します。 アプリが "自然に" 再起動されると (OS またはエンド ユーザーがアプリを強制終了したため)、更新プログラムがシームレスに取得されます。 この値は、サイレント更新を実行する場合に適しています。これは、アプリが突然どこからともなく再起動した場合にエンド ユーザーに影響を与える可能性があるためです。 更新プログラムがダウンロードされたことに気付かないでしょう。 これは、
sync
メソッドとLocalPackage.install
メソッドの両方で使用される既定のモードです。codePush.InstallMode.ON_NEXT_RESUME (2) - 更新プログラムをインストールするが、次回エンド ユーザーがバックグラウンドから再開するまでアプリを再起動しないことを示します。 この方法では、現在のセッションを中断することはありませんが、次の自然な再起動を待つよりも早く、その前に更新プログラムを取得できます。 この値は、非侵入的な方法で再開時に適用できるサイレント インストールに適しています。
codePush.InstallMode.ON_NEXT_SUSPEND (3) - 更新プログラムをバックグラウンドでインストールすることを示しますが、バックグラウンドで
minimumBackgroundDuration
秒 (既定では 0) が経過した後にのみ、アプリの中断が問題にならない限り、ユーザー コンテキストは失われません。
CheckFrequency
この列挙型は、アプリが更新のためにサーバーと同期するタイミングを指定し、 codePushify
デコレーターに渡すことができます。 これには次の値が含まれます。
codePush.CheckFrequency.ON_APP_START (0) - アプリのプロセスが開始されるたびに更新プログラムを確認することを示します。
codePush.CheckFrequency.ON_APP_RESUME (1) - アプリが "バックグラウンド" になった後にフォアグラウンドに戻るたびに更新プログラムを確認することを示します (ユーザーがホーム ボタンを押し、アプリは別の支払いプロセスを起動します)。
codePush.CheckFrequency.MANUAL (2) - 更新プログラムの自動チェックを無効にしますが、アプリ コードで
codePush.sync()
が呼び出されたときにのみ確認します。
SyncStatus
この列挙型は、sync
メソッドに渡すことができるsyncStatusChangedCallback
関数に提供され、全体的な更新プロセスにフックされます。 これには次の値が含まれます。
- codePush.SyncStatus.CHECKING_FOR_UPDATE (0) - CodePush サーバーに対して更新プログラムのクエリが実行されています。
- codePush.SyncStatus.AWAITING_USER_ACTION (1) - 更新プログラムを使用でき、エンド ユーザーに確認ダイアログが表示されました。 (これは、
updateDialog
が使用されている場合にのみ適用されます) - codePush.SyncStatus.DOWNLOADING_PACKAGE (2) - 使用可能な更新プログラムが CodePush サーバーからダウンロードされています。
- codePush.SyncStatus.INSTALLING_UPDATE (3) - 利用可能な更新プログラムがダウンロードされ、インストールされようとしています。
- codePush.SyncStatus.UP_TO_DATE (4) - アプリは、構成されたデプロイで完全に最新です。
- codePush.SyncStatus.UPDATE_IGNORED (5) - アプリにオプションの更新プログラムがあり、エンド ユーザーが無視するように選択しました。 (これは、
updateDialog
が使用されている場合にのみ適用されます) - codePush.SyncStatus.UPDATE_INSTALLED (6) - 使用可能な更新プログラムがインストールされており、
SyncOptions
で指定されたInstallMode
に応じて、syncStatusChangedCallback
関数が戻った直後または次回アプリが再開/再起動したときに実行されます。 - codePush.SyncStatus.SYNC_IN_PROGRESS (7) - 現在の呼び出しの実行を妨げる
sync
操作が進行中です。 - codePush.SyncStatus.UNKNOWN_ERROR (-1) - 同期操作で不明なエラーが検出されました。
UpdateState
この列挙型は、更新プログラムが現在存在する状態を指定し、 getUpdateMetadata
メソッドを呼び出すときに指定できます。 これには次の値が含まれます。
codePush.UpdateState.RUNNING (0) - 更新プログラムが現在実行中のアプリのバージョンを表していることを示します。 これは、"新機能" ダイアログにリリースの説明を表示したり、最新バージョンを分析またはクラッシュ レポート サービスに報告したりするシナリオで、アプリに関する属性を識別する場合に役立ちます。
codePush.UpdateState.PENDING (1) - 更新プログラムがインストールされているが、適用するためにアプリがまだ再起動されていないことを示します。 これは、(
restartApp
を介して) プログラムによる再起動を強制的に適用する必要がある、保留中の更新があるかどうかを判断する場合に役立ちます。codePush.UpdateState.LATEST (2) - 更新プログラムが利用可能な最新のリリースを表し、現在実行中または保留中であることを示します。
Objective-C API リファレンス (iOS)
Objective-C API は、 CodePush.h
ヘッダーを AppDelegate.m ファイルにインポートすることによって使用でき、 CodePush
という名前の 1 つのパブリック クラスで構成されます。
CodePush
最新の JavaScript バンドル ファイルを表すNSURL
を取得するための静的メソッドが含まれており、AppDelegate.m ファイルでアプリをブートストラップするときにRCTRootView
のinitWithBundleURL
メソッドに渡すことができます。
CodePush
クラスのメソッドは、次のシナリオに対応するために、常に適切なバンドルを読み込む複合リゾルバーと考えることができます。
エンド ユーザーがストアからアプリをインストールすると (
1.0.0
など)、バイナリに含まれる JS バンドルが取得されます。 これは CodePush を使用せずに得られる動作ですが、:)CodePush 更新プログラムのリリースを開始するとすぐに、エンド ユーザーは、構成されたデプロイの最新リリースを表す JS バンドルを取得します。 これは、ストアに出荷されたものを超えて反復処理できる動作です。
アプリ ストアの更新プログラム (
1.1.0
など) をリリースし、エンド ユーザーが更新すると、バイナリ内に含まれる JS バンドルが再び取得されます。 この動作により、以前のバイナリ バージョンを対象とした CodePush 更新プログラムが使用されなくなるため (動作することがわかっているため)、エンド ユーザーは常に動作するバージョンのアプリを使用できます。CodePush リリースとアプリ ストアのリリースが無限 (およびそれ以降) に続く場合は、#2 と #3 を繰り返します。
この動作により、必要に応じてアプリ ストアと CodePush の両方に更新プログラムを安全にデプロイでき、エンド ユーザーは常に最新バージョンを入手できます。
メソッド
(NSURL *)bundleURL - 前述のように最新の JS バンドル
NSURL
を返します。 このメソッドは、アプリ バイナリに含まれる JS バンドルの名前がmain.jsbundle
されていることを前提としています。(NSURL *)bundleURLForResource:(NSString *)resourceName -
bundleURL
メソッドと同等ですが、アプリ バイナリ内で検索される JS バンドルの名前をカスタマイズすることもできます。 これは、このファイルにmain
という名前を付けない場合に便利です (これが既定の規則です)。 このメソッドは、JS バンドルの拡張機能が*.jsbundle
されていることを前提としています。(NSURL *)bundleURLForResource:(NSString *)resourceName withExtension:(NSString *)resourceExtension:
bundleURLForResource:
メソッドと同等ですが、アプリ バイナリ内で検索される JS バンドルで使用される拡張機能をカスタマイズすることもできます。 これは、このファイルに*.jsbundle
という名前を付けない場合に便利です (これが既定の規則です)。(void)overrideAppVersion:(NSString *)appVersionOverride - アプリケーションのバイナリ インターフェイスのバージョンを設定します。それ以外の場合は、Info.plist で
CFBundleShortVersionString
として指定された App Store バージョンに設定されます。 バンドル URL が読み込まれる前に、これを 1 回呼び出す必要があります。(void)setDeploymentKey:(NSString *)deploymentKey - 更新プログラムのクエリを実行するときにアプリが使用するデプロイ キーを設定します。 これは、
checkForUpdate
またはsync
を呼び出すときに、Info.plistでデプロイ キーを設定したり、JS でデプロイ キーを指定したりするための動的な代替手段です。
Java API リファレンス (Android)
React Native 0.60 バージョン以降の API
autolinking
はプラグインをリンクするためにreact-native.config.js
を使用するため、コンストラクターはそのファイルで指定されます。 ただし、カスタム変数をオーバーライドして CodePush プラグインを管理するには、これらの値を文字列リソースに配置します。
公開キー - コード署名機能のバンドル検証に使用されます。 コード署名機能の詳細については、「 Code 署名 」セクションを参照してください。 公開キーを設定するには、公開キーの内容を名前
CodePushPublicKey
でstrings.xml
に追加する必要があります。 CodePush は自動的にこのプロパティを取得し、コード署名機能を有効にします。 次に例を示します。<string moduleConfig="true" name="CodePushPublicKey">your-public-key</string>
サーバー URL - CodePush サーバー URL を指定するために使用されます。 既定値: "https://codepush.appcenter.ms/"は、名前が
CodePushServerUrl
strings.xml
へのパスを追加することでオーバーライドされます。 CodePush はこのプロパティを自動的に取得し、このパスを使用して要求を送信します。 次に例を示します。<string moduleConfig="true" name="CodePushServerUrl">https://yourcodepush.server.com</string>
0.60 未満の React Native 用 API
Java API は、 com.microsoft.codepush.react.CodePush
クラスを MainActivity.java ファイルにインポートすることによって使用でき、 CodePush
という名前の 1 つのパブリック クラスで構成されます。
CodePush
CodePush クライアント ランタイムを構築し、アプリのパッケージの一覧に追加する ReactPackage
インスタンスを表します。
コンストラクター
CodePush(String deploymentKey, Activity mainActivity) - CodePush ランタイムの新しいインスタンスを作成します。これは、提供されたデプロイ キーを介してサービスに更新プログラムのクエリを実行するために使用されます。
mainActivity
パラメーターは、MainActivity
クラス内で React パッケージリストを構成するときに常にthis
に設定する必要があります。 このコンストラクターは CodePush ランタイムを "リリース モード" にするため、デバッグ動作を有効にする場合は、代わりに次のコンストラクターを使用します。CodePush(String deploymentKey, Activity mainActivity, bool isDebugMode) - 前のコンストラクターと同等ですが、CodePush ランタイムをデバッグ モードにするかどうかを指定できます。 このコンストラクターを使用する場合、ビルドの種類と同期を維持するために、
isDebugMode
パラメーターは常にBuildConfig.DEBUG
に設定する必要があります。 CodePush をデバッグ モードにすると、次の動作が有効になります。新しいバイナリがエミュレーター/デバイスにデプロイされるたびに、古い CodePush 更新プログラムはストレージから削除されません。 この動作により、開発中にバージョンを更新することなく、アプリが
sync
呼び出すたびに同じ更新プログラムを継続的に取得することなく、新しいバイナリをデプロイできます。React Native ランタイムがデバッグ モードで保持するローカル キャッシュは、CodePush 更新プログラムがインストールされるたびに削除されます。 これにより、更新プログラムの適用後にアプリが再起動されたときに、予想される変更を確認できます。 この PRマージされるとすぐに、これを行う必要がなくなります。
CodePush(String deploymentKey, Context context, boolean isDebugMode, Integer publicKeyResourceDescriptor) - 前のコンストラクターと同等ですが、公開キーのコンテンツを読み取るために必要な公開キー リソース記述子を指定できます。 コード署名機能の詳細については、「 Code 署名 」セクションを参照してください。
CodePush(String deploymentKey, Context context, boolean isDebugMode, String serverUrl) - コンストラクターを使用すると、CodePush サーバー URL を指定できます。 既定値:
"https://codepush.appcenter.ms/"
は、serverUrl
で指定された値によってオーバーライドされます。
静的メソッド
getBundleUrl() - リソース名が
index.android.bundle
されていると仮定して、アプリの JS バンドル ファイルの最新バージョンへのパスを返します。 アプリで別のバンドル名を使用している場合は、このメソッドのオーバーロードされたバージョンを使用します。これにより、それを指定できます。 このメソッドは、前述の Objective-C と同等の解像度動作を持ちます。getBundleUrl(String bundleName) - 指定されたリソース名 (
index.android.bundle
など) を使用して、アプリの JS バンドル ファイルの最新バージョンへのパスを返します。 このメソッドは、前述の Objective-C と同等の解像度動作を持ちます。overrideAppVersion(String appVersionOverride) - アプリケーションのバイナリ インターフェイスのバージョンを設定します。それ以外の場合は、build.gradle の
versionName
として指定された Play ストア バージョンに既定で設定されます。 これは、CodePush インスタンスが構築される前に、1 回呼び出す必要があります。