Comandi
使用方法
すべてのコマンドは、Capacitorプロジェクトが適切に初期化されたアプリフォルダで実行する必要があります
初期化
npx @capgo/cli@latest init [apikey]
このメソッドは、ステップバイステップで導入をサポートします
アプリをCapgoに追加し、アップデートを検証するコードをアプリに追加します。同様に、アプリをビルドし、Capgoにアップロードし、アップデートが機能するかを確認するのに役立ちます
ログイン
npx @capgo/cli login [apikey]
このメソッドは、apikey
を記憶するためのものです
オプションで指定可能:
--local
apikeyをローカルリポジトリに保存し、gitで無視します
ドクター
npx @capgo/cli doctor
Capgoパッケージが最新かどうかを確認するコマンド
このコマンドはバグレポートにも役立ちます
アプリ
追加
npx @capgo/cli app add [appId]
[appId]
アプリIDのフォーマットcomtestapp
はこちらで説明されています
💡 提供されていない場合、すべてのオプションは設定から推測されます
オプションで指定可能:
--icon [/path/to/my/icon]
Capgoウェブアプリに表示するカスタムアイコン--name [test]
リストでのカスタム名--apikey [key]
アカウントにリンクするAPIキー--retention [retention]
アプリバンドルの保持期間(日数)、デフォルトは0 = 無期限
appIdとAppNameのcapacitorconfigjson
の例、アイコンはresourcesフォルダから推測されます
{ "appId": "eeforgrcapacitor_go", "appName": "Capgo", "webDir": "dist"}
設定
npx @capgo/cli app set [appId]
[appId]
はアプリID、フォーマットはこちらで説明されています
オプションで指定可能:
--icon [/path/to/my/icon]
Capgoウェブアプリに表示するカスタムアイコン--name [test]
リストでのカスタム名--retention [retention]
アプリバンドルの保持期間(日数)、デフォルトは0 = 無期限--apikey [key]
アカウントにリンクするAPIキー
一覧
npx @capgo/cli app list [appId]
[appId]
アプリIDのフォーマットcomtestapp
はこちらで説明されています
オプションで指定可能:
--apikey [key]
アカウントにリンクするAPIキー
削除
npx @capgo/cli app delete [appId]
[appId]
アプリIDのフォーマットcomtestapp
はこちらで説明されています
オプションで指定可能:
--apikey [key]
アカウントにリンクするAPIキー--bundle
バージョン番号を指定してそのバージョンのみを削除
デバッグ
npx @capgo/cli app debug [appId]
[appId]
アプリIDのフォーマットcomtestapp
はこちらで説明されています
オプションで指定可能:
--apikey [key]
アカウントにリンクするAPIキー--device
デバッグしたい特定のデバイス
設定
npx @capgo/cli app setting [path]
Capacitor設定を編集
[path]
- 変更したい設定のパス。例えば、appId
を変更するにはappId
を指定します
capacitor-updater
の自動更新を無効にするにはpluginsCapacitorUpdaterautoUpdate
を指定します
--string
または--bool
のいずれかを指定する必要があります!
オプション:
--string <string>
- 設定を文字列に設定--bool <true | false>
- 設定をブーリアンに設定
バンドル
アップロード
npx @capgo/cli bundle upload [appId]
[appId]
はアプリID、フォーマットはこちらで説明されています
オプションで指定可能:
--apikey <apikey>
アカウントにリンクするAPIキー--path <path>
アップロードするフォルダのパス--channel <channel>
リンクするチャンネル--external <url>
Capgoクラウドにアップロードする代わりに外部URLにリンク--iv-session-key <key>
バンドルURL外部用のIVとセッションキーを設定--s3-endpoint <s3Endpoint>
S3エンドポイントのURL 部分アップロードまたは外部オプションでは動作しません--s3-region <region>
S3バケットのリージョン--s3-apikey <apikey>
S3エンドポイントのAPIキー--s3-apisecret <apisecret>
S3エンドポイントのAPIシークレット--s3-bucket-name <bucketName>
AWS S3バケットの名前--s3-port <port>
S3エンドポイントのポート--no-s3-ssl
S3アップロード用のSSLを無効化--key <key>
公開署名キーのカスタムパス(v1システム)--key-data <keyData>
公開署名キー(v1システム)--key-v2 <key>
秘密署名キーのカスタムパス(v2システム)--key-data-v2 <keyData>
秘密署名キー(v2システム)--bundle-url
バンドルURLをstdoutに出力--no-key
署名キーを無視してクリアアップデートを送信--no-code-check
ソースコードでnotifyAppReady()が呼び出されているかとルートフォルダにindexが存在するかのチェックを無視--display-iv-session
アップデートの暗号化に使用されたIVとセッションキーをコンソールに表示--bundle <bundle>
アップロードするバンドルのバージョン番号--min-update-version <minUpdateVersion>
このバージョンに更新するために必要な最小バージョン チャンネルで自動更新が無効になっている場合のみ使用--auto-min-update-version
ネイティブパッケージに基づいて最小更新バージョンを設定--ignore-metadata-check
アップロード時のメタデータ(node_modules)チェックを無視--ignore-checksum-check
アップロード時のチェックサムチェックを無視--timeout <timeout>
アップロードプロセスのタイムアウト(秒)--partial
部分ファイルをCapgoクラウドにアップロードしない--tus
tusプロトコルを使用してバンドルをアップロード--multipart
S3にデータをアップロードするためにマルチパートプロトコルを使用、非推奨、代わりにTUSを使用--encrypted-checksum <encryptedChecksum>
暗号化されたチェックサム(署名) 外部バンドルをアップロードする場合のみ使用--package-json <packageJson>
packagejsonへのパス モノレポで有用--auto-set-bundle
capacitorconfigjsonでバンドルを設定--node_modules <nodeModules>
node_modulesへのパスのリスト モノレポで有用(カンマ区切り 例://node_modules,/node_modules)
⭐️ 外部オプションは2つのケースを解決するのに役立ちます:プライバシーに関する企業の懸念、サードパーティにコードを送信しない、200 MB以上のアプリ。この設定では、Capgoはzipへのリンクのみを保存し、すべてのアプリにリンクを送信します
👀 Capgoクラウドは、リンク内(外部オプションの場合)や保存されたコードの内容を一切確認しません
🔑 暗号化を追加することで2層目のセキュリティを追加できます。そうすることでCapgoは何も確認や変更ができなくなり、「トラストレス」になります
バージョンのpackagejson
の例
{ "version": "102"}
⛔ バージョンは”000”より大きい必要があります
💡 セキュリティ上の理由から、バージョン番号は削除後に上書きまたは再利用することはできないため、送信するたびにバージョン番号を更新することを忘れないでください
一覧
npx @capgo/cli bundle list [appId]
[appId]
アプリIDのフォーマットcomtestapp
はこちらで説明されています
オプションで指定可能:
--apikey [key]
アカウントにリンクするAPIキー
削除
npx @capgo/cli bundle delete [appId]
[appId]
アプリIDのフォーマットcomtestapp
はこちらで説明されています
オプションで指定可能:
--apikey [key]
アカウントにリンクするAPIキー--bundle
バージョン番号を指定してそのバージョンのみを削除
クリーンアップ
クラウドのメジャーバージョンのSemVer範囲内で
npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]
[appId]
アプリIDのフォーマットcomtestapp
はこちらで説明されています
オプションで指定可能:
--apikey [key]
アカウントにリンクするAPIキー--bundle [majorVersion]
以前のパッケージを削除したいバージョン、最後のものとnumberToKeep
を保持します*--keep [numberToKeep]
保持したいパッケージの数(デフォルトは4)
例: バージョン1001から10011まで10個のバージョンがあり、npx @capgo/cli cleanup [appId] --bundle=1000
を使用した場合、1001から1006までが削除され、1007から10011が保持されます
合計20バージョンがあり、バンドル番号を指定せずにnpx @capgo/cli cleanup [appId] --keep=2
のように実行した場合、18バージョンが削除され、最後の2つが保持されます
このコマンドは確認を求め、保持および削除される内容の一覧を表示します
暗号化
警告: このコマンドは非推奨であり、次のメジャーリリースで削除されます。新しい暗号化システムを使用してください
npx @capgo/cli bundle encrypt [path/to/zip]
このコマンドは、コードを外部ソースに保存する場合やテスト目的で使用します
オプションで以下を指定できます:
--key [/path/to/my/private_key]
プライベートキーのパス
--key-data [privateKey]
インラインで使用する場合のプライベートキーデータ
コマンドはivSessionKey
を表示し、アップロードコマンドまたは復号化コマンドで使用する暗号化されたzipを生成します
暗号化 V2
npx @capgo/cli bundle encryptV2 [path/to/zip] [checksum]
このコマンドは、コードを外部ソースに保存する場合やテスト目的で使用します チェックサムはバンドルのsha256(—key-v2で生成)で、復号化後のファイルの整合性を確認するために使用されます プライベートキーで暗号化され、バンドルと共に送信されます 暗号化v2では、チェックサムがバンドルの「署名」にアップグレードされます
オプションで以下を指定できます:
--key [/path/to/my/private_key]
プライベートキーのパス
--key-data [privateKey]
インラインで使用する場合のプライベートキーデータ
--json
情報をJSONとして出力
コマンドはivSessionKey
を表示し、アップロードコマンドまたは復号化コマンドで使用する暗号化されたzipを生成します
復号化
npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]
オプションで以下を指定できます:
--key [/path/to/my/private_key]
プライベートキーのパス
--key-data [privateKey]
インラインで使用する場合のプライベートキーデータ このコマンドは主にテスト目的で使用され、zipを復号化してbase64でエンコードされた復号化されたセッションキーをコンソールに表示します
復号化 V2
npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]
オプションで以下を指定できます:
--key [/path/to/my/private_key]
プライベートキーのパス
--key-data [privateKey]
インラインで使用する場合のプライベートキーデータ このコマンドは主にテスト目的で使用され、zipを復号化してbase64でエンコードされた復号化されたセッションキーをコンソールに表示します
--checksum [checksum]
ファイルのチェックサム、復号化後にチェックサムを検証します
Zip
npx @capgo/cli bundle zip [appId]
[appId]
はアプリIDです。フォーマットについてはこちらで説明されています
オプションで以下を指定できます:
--path [/path/to/my/bundle]
特定のフォルダをアップロードする場合--bundle [100]
ファイル名のバンドルバージョン番号を設定--name [myapp]
ファイル名をオーバーライド--json
情報をJSONとして出力--no-code-check
コードチェックを無視してバンドルを送信--key-v2
新しい暗号化システムを使用 これは、新しい暗号化システムがファイルの整合性を確認するためのより良いチェックサムを使用するために必要です
互換性
npx @capgo/cli bundle compatibility [appId] -c [channelId]
[appId]
はアプリIDです。フォーマットについてはこちらで説明されています
[channelId]
は新しいチャンネルの名前です
オプションで以下を指定できます:
--apikey [key]
アカウントにリンクするAPIキー--text
テーブルで絵文字の代わりにテキストを使用--channel [channel]
互換性をチェックするチャンネル--package-json <packageJson>
packagejsonへのパス モノレポで有用です--node-modules <nodeModules>
node_modulesへのパスのリスト モノレポで有用です(カンマ区切り 例: //node_modules,/node_modules)
チャンネル
追加
npx @capgo/cli channel add [channelId] [appId]
[channelId]
新しいチャンネルの名前 [appId]
アプリID フォーマットcomtestapp
についてはこちらで説明されています
削除
npx @capgo/cli channel delete [channelId] [appId]
[channelId]
削除したいチャンネルの名前 [appId]
アプリID フォーマットcomtestapp
についてはこちらで説明されています
一覧
npx @capgo/cli channel list [appId]
[appId]
アプリID フォーマットcomtestapp
についてはこちらで説明されています
オプションで以下を指定できます:
--apikey [key]
アカウントにリンクするAPIキー
設定
npx @capgo/cli channel set [channelId] [appId]
[appId]
はアプリIDです。フォーマットについてはこちらで説明されています
オプションで以下を指定できます:
--bundle [123]
クラウドに既に送信済みのアプリバンドルを、チャンネルにリンクする場合--latest
packagejson:version
からバンドルバージョンを取得、--bundle
との併用不可--state [ normal | default ]
チャンネルの状態を設定、normal
またはdefault
を指定可能 1つのチャンネルはdefault
である必要があります--downgrade
チャンネルがデバイスにダウングレードバージョンを送信することを許可--no-downgrade
チャンネルがデバイスにダウングレードバージョンを送信することを禁止--upgrade
チャンネルがデバイスにアップグレード(メジャー)バージョンを送信することを許可--no-upgrade
チャンネルがデバイスにアップグレード(メジャー)バージョンを送信することを禁止--ios
チャンネルがiOSデバイスにバージョンを送信することを許可--no-ios
チャンネルがiOSデバイスにバージョンを送信することを禁止--android
チャンネルがAndroidデバイスにバージョンを送信することを許可--no-android
チャンネルがAndroidデバイスにバージョンを送信することを禁止--self-assign
デバイスがこのチャンネルに自己割り当てすることを許可--no-self-assign
デバイスがこのチャンネルに自己割り当てすることを禁止--disable-auto-update STRATEGY
このチャンネルの自動更新戦略を無効化 可能なオプション: major, minor, metadata, none--apikey [key]
アカウントにリンクするAPIキー
更新無効化戦略
古いバージョンの更新を無効化する方法がいくつかあります
Capgoはネイティブコードを更新できないため、古いネイティブコードを持つバージョンから更新されたネイティブコードを持つバージョンへの更新はできないようにする必要があります
これを実現するには複数の方法があります
まず、major
戦略 これは000
から100
への更新を防ぎます メジャーは強調表示された数字(100と000)です
次に、minor
戦略 これは000
から110
への更新や110
から120
への更新を防ぎます
注意この戦略は010
から110
への更新は防げません
3番目に、patch
戦略 これはとても厳格なモードとしてcapgoに追加されました 完全に動作を理解している場合を除き、使用は推奨されません
更新を許可するには、以下の条件を満たす必要があります:
- 新旧バージョン間でメジャーバージョンが同じ
- 新旧バージョン間でマイナーバージョンが同じ
- 新バージョンのパッチが旧バージョンのパッチより大きい
以下は更新が許可または拒否されるシナリオの例です
- 00311 -> 00314 ✅
- 000 -> 00314 ✅
- 00316 -> 00314 ❌
- 01312 -> 00314 ❌
- 10312 -> 00314 ❌
最後に最も複雑な戦略であるmetadata
戦略
まず知っておく必要があるのは、有効化した直後は必要なメタデータがチャンネルにないため更新は失敗するということです
チャンネルにメタデータがない場合、このようなメッセージが表示されます:

このように表示された場合、失敗しているチャンネルの現在のバンドルにメタデータを設定する必要があることがわかります
まず、どのチャンネルが失敗しているかを特定します。misconfigured
列を確認することでわかります

失敗しているチャンネルに移動し、Bundle number
をクリックしてください。これでバンドルページに移動します。

そこでMinimal update version
フィールドに入力します。これはsemverである必要があります。
入力値がsemverでない場合はエラーが表示されますが、すべて正しければ次のように表示されるはずです:

更新するたびにこのデータを手動で設定したくないかもしれません。幸いなことに、CLIはこのメタデータなしでの更新を防止します。

metadata
オプションを使用する際にバンドルを正しくアップロードするには、有効なsemverで--min-update-version
を渡す必要があります。このようになります:

--min-update-version
は互換性を確保する唯一の方法ではありません。
--auto-min-update-version
も存在します。これは次のように動作します:
まず、チャンネルに現在アップロードされているバージョンを確認します。bundle compatibility
コマンドと同様に互換性をチェックします。
次に、新しいバージョンが100%互換性がある場合、チャンネル内の最新バージョンのmin_update_version
を再利用します。
そうでない場合、新しくアップロードされたバージョンのバンドル番号をmin_update_version
として設定します。
このオプションを使用する際は、常にmin_update_version
の情報が表示されます。このように表示されます:

新しいバージョンに互換性がない場合は、このように表示されます:

エンドツーエンド暗号化(トラストレス)
Capgoはエンドツーエンド暗号化をサポートしています。これはバンドル(コード)がクラウドに送信される前に暗号化され、デバイス上で復号化されることを意味します。そのために、RSAキーペアを生成する必要があります。次のコマンドで生成できます。
暗号化システムはRSAとAESの組み合わせで、RSAキーはAESキーの暗号化に使用され、AESキーはファイルの暗号化に使用されます。
暗号化システムの詳細については以下をご覧ください:

暗号化スキーマ
アプリのキーを作成する
npx @capgo/cli key create
オプションで、--force
を指定して既存のキーを上書きできます。このコマンドはアプリにキーペアを作成し、プライベートキーを安全な場所に保存するよう促します。プライベートキーはgitにコミットせず、誰とも共有しないことをお勧めします。
ローカルでテストした後、設定ファイルからキーを削除し、
key save
でCIステップに追加してください。
アプリ設定にキーを保存する
npx @capgo/cli key save
オプションで以下を指定できます:
--key [/path/to/my/private_key]
プライベートキーのパス
--key-data [privateKey]
インラインで使用する場合のプライベートキーデータ。このコマンドは、推奨に従ってキーをアプリと設定にコミットしなかった場合に便利です。
CI統合
作業を自動化するために、GitHub actionsを使用してサーバーにプッシュすることをお勧めします。
デモアプリ
APIキーでCI環境変数を設定することを忘れないでください。