Loading...
Loading...
Compare original and translation side by side
@capawesome/cli--helppackage.json@capacitor/corecom.example.app@capawesome/cli--helppackage.json@capacitor/corecom.example.appsearch_docsget_doc_pagecloud_*claude mcp add --transport http capawesome "https://mcp.capawesome.io/mcp"capawesome-mcpsearch_docsget_doc_pagecloud_*claude mcp add --transport http capawesome "https://mcp.capawesome.io/mcp"capawesome-mcp@capgo/capacitor-updaterpackage.jsonCapacitorUpdaterpluginscapacitor.config.tscapacitor.config.json@capgo/capacitor-updaterCapacitorUpdaterappIdcom.example.appautoUpdatetruefalse'off''atBackground''atInstall''onLaunch''always''onlyDownload'truedirectUpdatetrue'atInstall''onLaunch''always'falsedefaultChannelappReadyTimeout10000autoDeletePrevioustruepublicKeyperiodCheckDelayresponseTimeout20updateUrlstatsUrlchannelUrlautoSplashscreenfalsepackage.json@capgo/capacitor-updatercapacitor.config.tscapacitor.config.jsonpluginsCapacitorUpdater@capgo/capacitor-updaterCapacitorUpdaterappIdcom.example.appautoUpdatetruefalse'off''atBackground''atInstall''onLaunch''always''onlyDownload'truedirectUpdatetrue'atInstall''onLaunch''always'falsedefaultChannelappReadyTimeout10000autoDeletePrevioustruepublicKeyperiodCheckDelayresponseTimeout20updateUrlstatsUrlchannelUrlautoSplashscreenfalse@capgo/clipackage.jsoncapgo@capgo/clibundle uploadchannel set.github/workflows/*.yml.gitlab-ci.ymlbitrise.ymlJenkinsfileazure-pipelines.ymlCAPGO_API_KEYpackage.json@capgo/cli.github/workflows/*.yml.gitlab-ci.ymlbitrise.ymlJenkinsfileazure-pipelines.ymlcapgo@capgo/clibundle uploadchannel setCAPGO_API_KEY.capgo_key_v2.capgo_key_v2.pubnpx @capgo/cli key createpublicKeyCapacitorUpdater--key-v2--key-data-v2bundle upload.capgo_key_v2.capgo_key_v2.pubnpx @capgo/cli key createCapacitorUpdaterpublicKeybundle upload--key-v2--key-data-v2capgo buildbuild requestbuild credentialscapgo buildbuild requestbuild credentialsnpx @capgo/cli channel list <CAPGO_APP_ID>npx @capgo/cli channel list <CAPGO_APP_ID>npx @capawesome/cli loginnpx @capawesome/cli loginnpx @capawesome/cli apps:createnpx @capawesome/cli apps:createnpx @capawesome/cli apps:channels:create --app-id <APP_ID> --name <CHANNEL_NAME>--self-assign--disable-auto-update--ios--androidsync({ channel })setChannel()--android-min--ios-minnpx @capawesome/cli apps:channels:create --app-id <APP_ID> --name <CHANNEL_NAME>--self-assign--disable-auto-update--ios--androidsync({ channel })setChannel()--android-min--ios-minnpm uninstall @capgo/capacitor-updaternpm uninstall @capgo/capacitor-updaternpm install @capawesome/capacitor-live-update@latestnpm install @capawesome/capacitor-live-update@v7-ltsnpm install @capawesome/capacitor-live-update@v6-ltsnpm install @capawesome/capacitor-live-update@latestnpm install @capawesome/capacitor-live-update@v7-ltsnpm install @capawesome/capacitor-live-update@v6-ltsCapacitorUpdaterLiveUpdatecapacitor.config.ts.jsonCapgo ( | Capawesome ( | Notes |
|---|---|---|
| | Different value — use the Capawesome Cloud app ID (UUID) from Step 2 |
| | Both in milliseconds. Capgo defaults to |
| | Capgo defaults to |
| (remove) | Use |
| | See Step 6 for the strategy mapping |
| (remove) | Handled in code — see the Force Update pattern in Step 6 |
| | Same value |
| (remove) | Handled in code — see Step 6 |
| (remove) | Handled in code — sync on the App |
| | New value required — generate a new key pair in Step 7. Do not reuse the Capgo key |
| (remove) | Handled automatically by the SDK |
| | Unit change: Capgo uses seconds (default |
| (remove) | Not needed |
| | Only set for EU hosting ( |
| (remove) | The native version code is used by the SDK |
allowModifyUrlallowModifyAppIdallowManualBundleErrorallowPreviewpersistCustomIdpersistModifyUrlallowSetDefaultChannelkeepUrlPathAfterReloaddisableJSLoggingosLoggingshakeMenushakeMenuGestureallowShakeChannelSelectorlocalS3localHostlocalWebHostlocalSupalocalSupaAnonlocalApilocalApiFiles // capacitor.config.ts
const config: CapacitorConfig = {
plugins: {
- CapacitorUpdater: {
- appId: 'com.example.app',
- autoUpdate: true,
- defaultChannel: 'production',
- appReadyTimeout: 10000,
- autoDeletePrevious: true,
- responseTimeout: 20
- }
+ LiveUpdate: {
+ appId: '<CAPAWESOME_APP_ID>',
+ autoUpdateStrategy: 'background',
+ defaultChannel: 'production',
+ readyTimeout: 10000,
+ autoDeleteBundles: true,
+ autoBlockRolledBackBundles: true,
+ httpTimeout: 20000
+ }
}
};capacitor.config.ts.jsonCapacitorUpdaterLiveUpdateCapgo( | Capawesome( | 说明 |
|---|---|---|
| | 值不同——使用步骤2中获取的Capawesome Cloud应用ID(UUID) |
| | 均为毫秒单位。Capgo默认值为 |
| | Capgo默认值为 |
| (移除) | 使用 |
| | 请查看步骤6的策略映射 |
| (移除) | 通过代码实现——请查看步骤6中的强制更新模式 |
| | 值相同 |
| (移除) | 通过代码实现——请查看步骤6 |
| (移除) | 通过代码实现——改为在App |
| | 需要新值——在步骤7中生成新密钥对。请勿复用Capgo密钥 |
| (移除) | SDK会自动处理 |
| | 单位变更:Capgo使用秒(默认 |
| (移除) | 无需设置 |
| | 仅在使用欧盟托管时设置( |
| (移除) | SDK会使用原生版本号 |
allowModifyUrlallowModifyAppIdallowManualBundleErrorallowPreviewpersistCustomIdpersistModifyUrlallowSetDefaultChannelkeepUrlPathAfterReloaddisableJSLoggingosLoggingshakeMenushakeMenuGestureallowShakeChannelSelectorlocalS3localHostlocalWebHostlocalSupalocalSupaAnonlocalApilocalApiFiles // capacitor.config.ts
const config: CapacitorConfig = {
plugins: {
- CapacitorUpdater: {
- appId: 'com.example.app',
- autoUpdate: true,
- defaultChannel: 'production',
- appReadyTimeout: 10000,
- autoDeletePrevious: true,
- responseTimeout: 20
- }
+ LiveUpdate: {
+ appId: '<CAPAWESOME_APP_ID>',
+ autoUpdateStrategy: 'background',
+ defaultChannel: 'production',
+ readyTimeout: 10000,
+ autoDeleteBundles: true,
+ autoBlockRolledBackBundles: true,
+ httpTimeout: 20000
+ }
}
};@capgo/capacitor-updater-import { CapacitorUpdater } from '@capgo/capacitor-updater';
+import { LiveUpdate } from '@capawesome/capacitor-live-update';CapacitorUpdaterLiveUpdatereferences/api-mapping.mdnotifyAppReady()ready()-import { CapacitorUpdater } from '@capgo/capacitor-updater';
+import { LiveUpdate } from '@capawesome/capacitor-live-update';
-CapacitorUpdater.notifyAppReady();
+void LiveUpdate.ready();getLatest()fetchLatestBundle()versionbundleIdurldownloadUrl-const latest = await CapacitorUpdater.getLatest();
-if (latest.url) {
- console.log('Update available:', latest.version);
+const result = await LiveUpdate.fetchLatestBundle();
+if (result.downloadUrl) {
+ console.log('Update available:', result.bundleId);
}download()downloadBundle()-const bundle = await CapacitorUpdater.download({
- url: latest.url,
- version: latest.version
-});
+await LiveUpdate.downloadBundle({
+ url: result.downloadUrl,
+ bundleId: result.bundleId
+});next()setNextBundle()set()setNextBundle()reload()-await CapacitorUpdater.next({ id: bundle.id });
+await LiveUpdate.setNextBundle({ bundleId: result.bundleId });-await CapacitorUpdater.set({ id: bundle.id });
+await LiveUpdate.setNextBundle({ bundleId: result.bundleId });
+await LiveUpdate.reload();sync(...)fetchLatestBundle(...)setChannel()-await CapacitorUpdater.setChannel({ channel: 'beta', triggerAutoUpdate: true });
+await LiveUpdate.sync({ channel: 'beta' });setChannel({ channel })setChannel({ channel: null })unsetChannel()@capgo/capacitor-updater-import { CapacitorUpdater } from '@capgo/capacitor-updater';
+import { LiveUpdate } from '@capawesome/capacitor-live-update';CapacitorUpdaterLiveUpdatereferences/api-mapping.mdnotifyAppReady()ready()-import { CapacitorUpdater } from '@capgo/capacitor-updater';
+import { LiveUpdate } from '@capawesome/capacitor-live-update';
-CapacitorUpdater.notifyAppReady();
+void LiveUpdate.ready();getLatest()fetchLatestBundle()versionbundleIdurldownloadUrl-const latest = await CapacitorUpdater.getLatest();
-if (latest.url) {
- console.log('Update available:', latest.version);
+const result = await LiveUpdate.fetchLatestBundle();
+if (result.downloadUrl) {
+ console.log('Update available:', result.bundleId);
}download()downloadBundle()-const bundle = await CapacitorUpdater.download({
- url: latest.url,
- version: latest.version
-});
+await LiveUpdate.downloadBundle({
+ url: result.downloadUrl,
+ bundleId: result.bundleId
+});next()setNextBundle()set()setNextBundle()reload()-await CapacitorUpdater.next({ id: bundle.id });
+await LiveUpdate.setNextBundle({ bundleId: result.bundleId });-await CapacitorUpdater.set({ id: bundle.id });
+await LiveUpdate.setNextBundle({ bundleId: result.bundleId });
+await LiveUpdate.reload();sync(...)fetchLatestBundle(...)setChannel()-await CapacitorUpdater.setChannel({ channel: 'beta', triggerAutoUpdate: true });
+await LiveUpdate.sync({ channel: 'beta' });setChannel({ channel })setChannel({ channel: null })unsetChannel()autoUpdatedirectUpdateautoUpdatedirectUpdateautoUpdate: true'atBackground''atInstall''onLaunch'directUpdateautoUpdateStrategy: 'background'autoUpdate: true'atBackground''atInstall''onLaunch'directUpdateautoUpdateStrategy: 'background'autoUpdate: 'always'autoUpdate: 'always'nextBundleSetimport { LiveUpdate } from '@capawesome/capacitor-live-update';
LiveUpdate.addListener('nextBundleSet', async (event) => {
if (event.bundleId) {
const shouldReload = confirm('A new update is available. Install now?');
if (shouldReload) {
await LiveUpdate.reload();
}
}
});confirm()nextBundleSetimport { LiveUpdate } from '@capawesome/capacitor-live-update';
LiveUpdate.addListener('nextBundleSet', async (event) => {
if (event.bundleId) {
const shouldReload = confirm('A new update is available. Install now?');
if (shouldReload) {
await LiveUpdate.reload();
}
}
});confirm()directUpdateautoSplashscreendirectUpdateautoSplashscreendirectUpdatefalseautoUpdateStrategyimport { SplashScreen } from '@capacitor/splash-screen';
import { LiveUpdate } from '@capawesome/capacitor-live-update';
const initializeApp = async () => {
const { nextBundleId } = await LiveUpdate.sync();
if (nextBundleId) {
await LiveUpdate.reload();
} else {
await SplashScreen.hide();
}
};
initializeApp();directUpdateautoSplashscreendirectUpdatefalseautoUpdateStrategyimport { SplashScreen } from '@capacitor/splash-screen';
import { LiveUpdate } from '@capawesome/capacitor-live-update';
const initializeApp = async () => {
const { nextBundleId } = await LiveUpdate.sync();
if (nextBundleId) {
await LiveUpdate.reload();
} else {
await SplashScreen.hide();
}
};
initializeApp();directUpdateautoSplashscreenautoUpdate: 'off''onlyDownload'autoUpdate: 'off''onlyDownload'autoUpdateStrategygetLatest()download()next()sync()resumeimport { App } from '@capacitor/app';
import { LiveUpdate } from '@capawesome/capacitor-live-update';
void LiveUpdate.ready();
App.addListener('resume', async () => {
await LiveUpdate.sync();
});autoUpdateStrategygetLatest()download()next()sync()resumeimport { App } from '@capacitor/app';
import { LiveUpdate } from '@capawesome/capacitor-live-update';
void LiveUpdate.ready();
App.addListener('resume', async () => {
await LiveUpdate.sync();
});periodCheckDelayperiodCheckDelayresumesync()resumesync()npx cap syncnpx cap sync.capgo_key_v2npx @capawesome/cli apps:liveupdates:generatesigningkey --app-type capacitorpublicKeycapacitor.config.ts--private-key.capgo_key_v2.capgo_key_v2npx @capawesome/cli apps:liveupdates:generatesigningkey --app-type capacitorcapacitor.config.tspublicKey--private-key.capgo_key_v2CAPAWESOME_CLOUD_TOKEN-- run: npx @capgo/cli@latest login "$CAPGO_API_KEY"
+- run: npx @capawesome/cli login --token ${{ secrets.CAPAWESOME_CLOUD_TOKEN }}--apikey-aloginlogin --tokenCAPAWESOME_CLOUD_TOKEN-- run: npx @capgo/cli@latest login "$CAPGO_API_KEY"
+- run: npx @capawesome/cli login --token ${{ secrets.CAPAWESOME_CLOUD_TOKEN }}--apikey-aloginlogin --token--app-id <UUID>| Capgo CLI | Capawesome CLI Equivalent |
|---|---|
| |
| No equivalent — follow this skill's steps instead |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Manage bundles in the Console; set a bundle limit per channel for automatic cleanup |
| |
| |
| |
| |
| |
| |
| |
| |
-npx @capgo/cli@latest bundle upload com.example.app --apikey "$CAPGO_API_KEY" --path ./dist --channel production
+npx @capawesome/cli apps:liveupdates:upload --app-id <APP_ID> --path ./dist --channel production--bundle <VERSION>--git-ref--custom-property key=value--app-id <UUID>| Capgo CLI | Capawesome CLI等效命令 |
|---|---|
| |
| 无等效命令——请遵循本技能中的步骤 |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| 在控制台中管理包;为每个渠道设置包数量限制以自动清理 |
| |
| |
| |
| |
| |
| |
| |
| |
-npx @capgo/cli@latest bundle upload com.example.app --apikey "$CAPGO_API_KEY" --path ./dist --channel production
+npx @capawesome/cli apps:liveupdates:upload --app-id <APP_ID> --path ./dist --channel production--bundle <VERSION>--git-ref--custom-property key=valuenpm run buildnpx @capawesome/cli apps:liveupdates:upload --app-id <APP_ID> --channel <CHANNEL_NAME>npm run build && npx cap syncnpx cap open iosnpx cap open androidautoUpdateStrategy: "background"npm run buildnpx @capawesome/cli apps:liveupdates:upload --app-id <APP_ID> --channel <CHANNEL_NAME>npm run build && npx cap syncnpx cap open iosnpx cap open androidautoUpdateStrategy: "background"@capgo/capacitor-updater@capgo/clipackage.jsonCapacitorUpdatercapacitor.config.tscapacitor.config.json.capgo_key_v2.capgo_key_v2.pubCAPGO_API_KEY@capgo/cli@capgo/capacitor-updater@capgo/clipackage.jsoncapacitor.config.tscapacitor.config.jsonCapacitorUpdater.capgo_key_v2.capgo_key_v2.pubCAPGO_API_KEY@capgo/clinpx cap sync@capawesome/capacitor-live-updatepackage.json@latest@v7-lts@v6-ltsCapacitorUpdater is not defined@capgo/capacitor-updater@capawesome/capacitor-live-updateCapacitorUpdaterLiveUpdateLiveUpdate.ready()notifyAppReady()readyTimeoutappIdgetChannel()autoUpdateStrategy: "background"apps:liveupdates:generatesigningkeypublicKey--private-keysetConfig is not a function@latest@v7-lts@v6-ltssetConfig()fetchChannels()CAPAWESOME_CLOUD_TOKENlogin --token--app-idnpx cap sync@capawesome/capacitor-live-updatepackage.json@latest@v7-lts@v6-ltsCapacitorUpdater is not defined@capgo/capacitor-updater@capawesome/capacitor-live-updateCapacitorUpdaterLiveUpdateLiveUpdate.ready()notifyAppReady()readyTimeoutappIdgetChannel()autoUpdateStrategy: "background"apps:liveupdates:generatesigningkeypublicKey--private-keysetConfig is not a function@latest@v7-lts@v6-ltssetConfig()fetchChannels()CAPAWESOME_CLOUD_TOKENlogin --token--app-idcapawesome-cloudcapawesome-cliionic-appflow-migrationcapawesome-mcpcapawesome-cloudcapawesome-cliionic-appflow-migrationcapawesome-mcp