Lebihan ke Konten

Perintah

Halaman ini adalah ringkasan terstruktur. Gunakan referensi perintah saat ini untuk flag yang tepat: app, bundle, channel, dan build.

Semua perintah harus dijalankan di folder aplikasi Anda dengan capacitor project dihidupkan dengan benar.

npx @capgo/cli@latest init [apikey]

Metode ini bertujuan untuk memandu Anda secara bertahap.

It will add your app to Capgo. It will add the code to your app to validate the update. Likewise, it will build your app. Furthermore, it will upload your app to Capgo. And it will help you to check if the update works.

npx @capgo/cli login [apikey]

Metode ini bertujuan untuk mengingatkan Anda untuk apikey untuk Anda.

Anda dapat memberikan pilihan berikut:

--local Ini akan menyimpan apikey Anda apikey di repositori lokal dan mengabaikannya dalam git.

npx @capgo/cli doctor

Perintah untuk memeriksa apakah Anda sudah terupdate dengan paket Capgo.

Perintah ini juga berguna untuk melaporkan bug.

npx @capgo/cli app add [appId]

[appId] ID aplikasi Anda dalam format com.test.app ditjelaskan di sini.

💡 Semua pilihan akan ditebak dalam konfigurasi Anda jika tidak disediakan.

Anda dapat memberikan pilihan tersebut secara opsional.

  • --icon [/path/to/my/icon] Untuk menampilkan ikon kustom di aplikasi web Capgo.
  • --name [test] Untuk menampilkan nama khusus dalam daftar.
  • --apikey [key] Kunci API untuk menghubungkan ke akun Anda.
  • --retention [retention] Masa penyimpanan paket aplikasi dalam hari, 0 oleh default = tak terbatas.

Contoh capacitor.config.json untuk appId dan AppName, ikon dipasang di folder sumber daya

{
"appId": "ee.forgr.capacitor_go",
"appName": "Capgo",
"webDir": "dist"
}

npx @capgo/cli app set [appId]

[appId] ID aplikasi Anda, formatnya dijelaskan di sini.

Optionally, Anda dapat memberikan:

  • --icon [/path/to/my/icon] untuk menampilkan ikon kustom di aplikasi web Capgo.
  • --name [test] untuk menampilkan nama kustom di daftar.
  • --retention [retention] periode penyimpanan aplikasi bundle dalam hari, 0 default = tak terbatas.
  • --expose-metadata [true|false] untuk menampilkan metadata bundle (link dan komentar) ke plugin.
  • --preview atau --no-preview Mengaktifkan atau menonaktifkan kode QR untuk pratinjau bundle dan channel.
  • --allow-device-custom-id or --no-allow-device-custom-id Mengatur ID perangkat kustom.
  • --block-provider-infra-requests or --no-block-provider-infra-requests Mengatur pengaturan pemblokiran permintaan datacenter Google dan Apple yang dikenal.
  • --build-timeout-minutes [5-360] Mengatur waktu pembangunan native.
  • --ios-store-url [url] or --android-store-url [url] Mengatur URL toko.
  • --default-upload-channel [channel] Mengatur saluran unggah default.
  • --default-download-channel [channel] Mengatur saluran unduh default, atau --disable-download-channels Mengatur semua saluran unduh menjadi tidak publik.
  • --apikey [key] API untuk menghubungkan ke akun Anda.

npx @capgo/cli app list [appId]

[appId] ID aplikasi Anda dalam format com.test.app dijelaskan di sini.

Jika perlu, Anda dapat memberikan:

  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.

npx @capgo/cli app delete [appId]

[appId] ID aplikasi Anda dalam format com.test.app dijelaskan di sini.

Dapat pula Anda berikan:

  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.
  • --bundle dengan nomor versi akan hanya menghapus versi ini.

npx @capgo/cli app debug [appId]

[appId] ID aplikasi Anda dalam format com.test.app dijelaskan di sini.

Dapat pula Anda berikan:

  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.
  • --device dengan perangkat spesifik yang ingin Anda debug

npx @capgo/cli app setting [path]

Ubah konfigurasi Capacitor.

[path] path pengaturan yang ingin Anda ubah. Misalnya, untuk mengubah appId, berikan appId. Jika Anda ingin mematikan update otomatis di capacitor-updater, berikan plugins.CapacitorUpdater.autoUpdate dengan --string off.

. Anda HARUS memberikan salah satu --string atau --bool!

Options:

  • --string <string> Mengatur pengaturan ke sebuah string
  • --bool <true | false> Mengatur pengaturan ke nilai boolean

npx @capgo/cli bundle upload [appId]

[appId] ID aplikasi Anda, formatnya dijelaskan di sini.

Jika perlu, Anda dapat memberikan:

  • --apikey <apikey> Kunci API untuk menghubungkan ke akun Anda.
  • --path <path> Jalur folder untuk diunggah.
  • --channel <channel> Saluran untuk dihubungkan.
  • --external <url> Hubungkan ke URL eksternal alih-alih mengunggah ke Capgo Cloud.
  • --iv-session-key <key> Set IV dan kunci sesi untuk URL bundle eksternal.
  • --s3-endpoint <s3Endpoint> URL endpoint S3. Tidak berfungsi dengan unggahan delta atau opsi eksternal.
  • --s3-region <region> Region untuk bucket S3 Anda.
  • --s3-apikey <apikey> Kunci API untuk endpoint S3 Anda.
  • --s3-apisecret <apisecret> Rahasia API untuk endpoint S3 Anda.
  • --s3-bucket-name <bucketName> Nama untuk bucket S3 AWS Anda.
  • --s3-port <port> Port untuk endpoint S3 Anda.
  • --no-s3-ssl Nonaktifkan SSL untuk unggahan S3.
  • --key <key> Jalur kustom untuk kunci tanda tangan publik (sistem v1).
  • --key-data <keyData> Kunci tanda tangan publik (sistem v1).
  • --key-v2 <key> Jalur kustom untuk kunci tanda tangan privat (sistem v2).
  • --key-data-v2 <keyData> Kunci tanda tangan privat (sistem v2).
  • --bundle-url Cetak URL bundle ke stdout.
  • --no-key Ingatlah kunci tanda tangan dan kirimkan pembaruan jelas.
  • --no-code-check Ingatlah untuk memeriksa apakah notifyAppReady() dipanggil di sumber code dan indeks ada di folder root.
  • --display-iv-session Tampilkan di konsol IV dan kunci sesi yang digunakan untuk mengenkripsi pembaruan.
  • --bundle <bundle> Nomor versi bundel untuk diunggah.
  • --auto-bump [level] Auto-increment dari bundle terkait saluran, atau versi aplikasi remote terbaru. Level: major, minor (default), patch (alias) fix), metadata, atau ai (Pekerja AI membandingkan file lokal dengan manifest delta sebelumnya Capgo/saluran, menafsirkan tingkat, dan mencetak alasan singkat; melewatkan AI dan mengangkat) patch Jika tidak ada versi sebelumnya Capgo. Bumps sampai nama gratis ditemukan (nama yang dihapus tetap terisi). Tidak dapat digabungkan dengan --bundle.
  • --min-update-version <minUpdateVersion> Versi minimal yang diperlukan untuk memperbarui ke versi ini. Digunakan hanya jika pengaturan auto update diatur ke metadata di saluran.
  • --auto-min-update-version Pasang versi pembaruan minimal berdasarkan paket native.
  • --ignore-metadata-check Mengabaikan pengecekan metadata (node_modules) saat mengunggah.
  • --ignore-checksum-check Mengabaikan pengecekan ceksum saat mengunggah.
  • --timeout <timeout> Waktu tunggu untuk proses unggahan dalam detik.
  • --delta Mengunggah file Delta (manifest) bersama dengan bundle penuh.
  • --delta-only Mengunggah hanya perubahan Delta (manifest), melompati bundle penuh.
  • --no-delta Matikan Unggahan Delta (manifest) (bermanfaat jika aplikasi diterapkan secara instan) autoUpdate mode diaktifkan tetapi Anda ingin bundle lengkap.
  • --tus Muat turun paket menggunakan protokol tus.
  • --multipart Suatu ceksum yang dienkripsi (tanda tangan). Digunakan hanya saat mengunggah bundle eksternal.
  • --encrypted-checksum <encryptedChecksum> Checksum Terenkripsi (Tanda Tangan). Digunakan hanya ketika mengunggah bundle eksternal.
  • --package-json <packageJson> Atur bundle di __CAPGO_KEEP_0__.config.json.
  • --auto-set-bundle Atur bundle di capacitor.config.json.
  • --node-modules <nodeModules> Dari daftar jalur ke node_modules. Bermanfaat untuk monorepos (dipisahkan oleh koma, misalnya: ../../node_modules,./node_modules)

⭐️ Opsi luar membantu mengaktifkan 2 kasus: perusahaan dengan kekhawatiran privasi, tidak mengirimkan code ke pihak ketiga dan aplikasi lebih besar dari 200 MB. Dengan pengaturan ini, Capgo hanya menyimpan tautan ke zip dan mengirimkan tautan ke semua aplikasi.

👀 Capgo cloud tidak pernah melihat apa yang ada di tautan (untuk opsi luar), atau di code ketika disimpan.

🔑 Anda dapat menambahkan lapisan keamanan kedua dengan menggunakan enkripsi, kemudian Capgo tidak akan dapat melihat atau memodifikasi apa pun, menjadi “tidak dipercaya”.

Dengan contoh package.json Dari versi

{
"version": "1.0.2"
}

⛔ Versi harus lebih besar dari “0.0.0”.

💡 Jangan lupa untuk memperbarui nomor versi setiap kali Anda mengirimkan satu, nomor versi tidak dapat diubah atau digunakan kembali setelah penghapusan karena alasan keamanan.

npx @capgo/cli bundle list [appId]

[appId] ID aplikasi Anda dalam format com.test.app dijelaskan di sini di sini.

Jika perlu, Anda dapat memberikan:

  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.

npx @capgo/cli bundle delete [appId]

[appId] ID aplikasi Anda dengan format com.test.app dijelaskan di sini di sini.

Jika perlu, Anda dapat memberikan:

  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.
  • --bundle dengan nomor versi akan hanya menghapus versi ini.

di rentang SemVer untuk versi utama ke Cloud

npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]

[appId] ID aplikasi Anda dalam format com.test.app diuraikan di sini.

Jika perlu, Anda dapat memberikan:

  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.
  • --bundle [majorVersion] versi yang Anda inginkan untuk menghapus paket sebelumnya, akan menyimpan yang terakhir + numberToKeep.
  • --keep [numberToKeep] jumlah paket yang ingin Anda simpan (default 4).

Contoh: Jika Anda memiliki 10 versi dari 10.0.1 hingga 10.0.11, dan Anda menggunakan npx @capgo/cli cleanup [appId] --bundle=10.0.0 akan menghapus 10.0.1 hingga 10.0.6. 10.0.7 hingga 10.0.11 akan disimpan.

Jika Anda memiliki 20 versi secara keseluruhan, dan Anda tidak menyediakan nomor paket seperti ini: npx @capgo/cli cleanup [appId] --keep=2 Namun, akan menghapus 18 versi, dan menyimpan 2 versi terakhir.

Perintah ini akan meminta konfirmasi, menampilkan tabel apa yang akan disimpan dan dihapus.

Warning: Perintah ini sudah tidak digunakan dan akan dihapus dalam rilis utama berikutnya. Silakan gunakan sistem enkripsi baru. npx @capgo/cli bundle encrypt [path/to/zip]

Ini perintah digunakan ketika Anda menggunakan sumber eksternal untuk menyimpan code Anda atau untuk tujuan pengujian.

Jika diinginkan, Anda dapat memberikan:

--key [/path/to/my/private_key] path dari kunci pribadi Anda. --key-data [privateKey] Data kunci pribadi, jika Anda ingin menggunakan inline. Perintah akan mencetak data kunci pribadi Anda ivSessionKeyy dan menghasilkan zip yang dienkripsi, untuk menggunakan dengan perintah unggah atau perintah dekripsi.

npx @capgo/cli bundle encrypt [path/to/zip] [checksum]

This command is used when you use external source to store your code or for test purpose. The checksum is the sha256 of the bundle (generated by —key-v2), it is used to verify the integrity of the file after decryption. It will be enncrypted with the private key and sent along with the bundle. In encryption v2 the checksum is upgraded to become a “signature” of the bundle.

Opsi, Anda dapat memberikan:

--key [/path/to/my/private_key] path dari kunci pribadi Anda. --key-data [privateKey] data kunci pribadi, jika Anda ingin menggunakan inline. --json untuk menampilkan informasi sebagai JSON. ivSessionKeyy dan menghasilkan zip yang dienkripsi, untuk menggunakan dengan perintah unggah atau perintah dekripsi.

npx @capgo/cli bundle decrypt [path/to/zip] [ivSessionKey]

Jika Anda ingin, Anda dapat memberikan:

--key [/path/to/my/private_key] path dari kunci pribadi Anda.

--key-data [privateKey] data kunci pribadi, jika Anda ingin menggunakan inline. Perintah ini digunakan terutama untuk tujuan pengujian, sehingga akan mengamankan zip dan mencetak kunci sesi base64 yang dienkripsi di konsol.

npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]

Jika Anda ingin, Anda dapat memberikan:

--key [/path/to/my/private_key] path dari kunci pribadi Anda. --key-data [privateKey] data kunci pribadi, jika Anda ingin menggunakan inline. Perintah ini digunakan terutama untuk tujuan pengujian, sehingga akan mengamankan zip dan mencetak kunci sesi base64 yang dienkripsi di konsol. --checksum [checksum] checksum dari file, sehingga akan memverifikasi checksum setelah pengamankan.

npx @capgo/cli bundle zip [appId]

[appId] ID aplikasi Anda, formatnya dijelaskan di sini di sini.

Jika perlu, Anda dapat memberikan:

  • --path [/path/to/my/bundle] untuk mengunggah folder tertentu.
  • --bundle [1.0.0] untuk menetapkan nomor versi bundle dari nama file.
  • --name [myapp] untuk mengganti nama file.
  • --json untuk menampilkan informasi dalam format JSON.
  • --no-code-check untuk mengabaikan pengecekan code dan mengirim bundle secara langsung.
  • --key-v2 untuk menggunakan sistem enkripsi baru. Ini diperlukan karena sistem enkripsi baru menggunakan checksum yang lebih baik untuk memverifikasi integritas file.

npx @capgo/cli bundle compatibility [appId] -c [channelName]

[appId] ID aplikasi Anda, formatnya dijelaskan di sini di sini. [channelName] nama saluran untuk memeriksa.

Jika Anda ingin, Anda bisa memberikan:

  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.
  • --text gunakan teks daripada emoji di tabel
  • --channel [channel] saluran untuk memeriksa konsistensi dengan.
  • --package-json <packageJson> Jalur ke file package.json. Berguna untuk monorepos
  • --node-modules <nodeModules> Dari daftar jalur ke node_modules. Berguna untuk monorepos (dipisahkan dengan koma, contoh: ../../node_modules,./node_modules)

npx @capgo/cli channel add [channelName] [appId]

[channelName] nama saluran baru Anda, seperti production atau beta. [appId] nama saluran yang ingin Anda hapus. com.test.app dijelaskan here.

npx @capgo/cli channel delete [channelName] [appId]

[channelName] nama saluran yang ingin Anda hapus [appId] nama saluran yang ingin Anda hapus. com.test.app dijelaskan here.

npx @capgo/cli channel list [appId]

[appId] ID aplikasi Anda dalam format com.test.app diuraikan di sini.

Optionally, Anda dapat memberikan:

  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.

npx @capgo/cli channel set [channelName] [appId]

[appId] ID aplikasi Anda, formatnya dijelaskan di sini. [channelName] nama saluran yang ingin Anda konfigurasi, seperti production or beta.

Dapat juga Anda berikan:

  • --bundle [1.2.3] bundle aplikasi Anda sudah dikirim ke cloud, untuk menghubungkannya ke sebuah channel.
  • --latest mengambil versi bundle dari package.json:version, tidak dapat digunakan bersamaan dengan --bundle.
  • --state [ normal | default ] menetapkan status saluran, dapat normal atau default. Satu saluran harus default.
  • --downgrade mengizinkan saluran untuk mengirimkan versi turun ke perangkat.
  • --no-downgrade menghambat saluran untuk mengirimkan versi turun ke perangkat.
  • --upgrade mengizinkan saluran untuk mengirimkan versi naik (utama) ke perangkat.
  • --no-upgrade menghambat saluran untuk mengirimkan versi naik (utama) ke perangkat.
  • --ios mengizinkan saluran untuk mengirimkan versi ke perangkat iOS.
  • --no-ios Mencegah saluran untuk mengirimkan versi ke perangkat iOS.
  • --android Mengizinkan saluran untuk mengirimkan versi ke perangkat Android.
  • --no-android Mencegah saluran untuk mengirimkan versi ke perangkat Android.
  • --self-assign Mengizinkan perangkat untuk menetapkan diri sendiri ke saluran ini.
  • --no-self-assign Mencegah perangkat untuk menetapkan diri sendiri ke saluran ini.
  • --disable-auto-update STRATEGY Mengaktifkan strategi pembaruan otomatis untuk saluran ini. Opsi yang tersedia adalah: major, minor, patch, metadata, none.
  • --apikey [key] Kunci API untuk menghubungkan ke akun Anda.

Terdapat beberapa cara untuk menangani penghapusan pembaruan untuk versi yang terlalu tua.
Kunci Capgo tidak dapat memperbarui native code sehingga pembaruan dari versi dengan native code yang lama ke versi dengan native code yang diperbarui tidak boleh mungkin. Ada beberapa cara untuk mencapai itu.

Pertama, major strategi. Ini mencegah pembaruan dari dasar native. 0.0.0 -> bundle target 1.0.0. Angka utama adalah angka yang ditonjolkan (1.0.0 dan 0.0.0).
Kedua adalah minor Strategi ini mencegah update ketika bundle target memiliki versi mayor atau minor yang berbeda dengan baseline native perangkat. 0.0.0 -> 1.1.0 atau 1.1.0 -> 1.2.0.

Ketiga, patch strategy. It was added into capgo as a very strict mode. It’s not recommended to be used unless you fully understand how it works. In order for it to accept an update, the following conditions must be met:

  • The major is the same between the target bundle and version_build
  • Angka utama adalah sama antara target bundle dan version_build
  • Angka minor adalah sama antara target bundle dan version_build
  • Hanya versi sufiks yang dapat berbeda, seperti prerelease ("-beta.2atau bangun metadata (+build.2)

Contoh skenario mana update diizinkan atau ditolak

  • 1.0.0-beta.1 -> 1.0.0-beta.2 diizinkan
  • 1.0.0+build.1 -> 1.0.0+build.2 diizinkan
  • 1.0.0 -> 1.0.1 diblokir
  • 1.0.0 -> 1.1.0 diblokir
  • 1.0.0 -> 2.0.0 diblokir

Strategi perbandingan menggunakan basis sentral native yang dikirimkan version_buildBukan bundle yang diunduh saat ini yang dikirimkan sebagai version_name.

Terakhir, strategi yang paling rumit. metadata Taktik.
Terlebih dahulu Anda harus tahu bahwa awalnya setelah Anda mengaktifkannya, pembaruan WILL Gagal karena channel tersebut tidak memiliki metadata yang diperlukan.
Jika saluran kurang metadata, Anda akan melihat pesan seperti ini:

Tidak Dapat Menemukan Metadata

If you see something like this you know that you have to go to the current bundle for the failing channel and set the metadata.
Cari terlebih dahulu saluran mana yang gagal. Anda bisa melihatnya dengan memeriksa misconfigured column

Tabel yang tidak terkonfigurasi

ini. Ini harus membawa Anda ke halaman bundle. Bundle numberHalaman ini akan membawa Anda ke halaman paket.

Tabel yang salah konfigurasi

Setelah itu isi Minimal update version Isi lapangan ini. Ini harus berupa semver.
Maka Anda akan mendapatkan kesalahan, tetapi jika semuanya berjalan dengan benar Anda harus melihat sesuatu seperti ini:

Set min versi

Now, you likely do not want to set this data manually every time you update. Fortunately, the CLI will prevent you from sending an update without this metadata

CLI fail no metadata

Mengunggah bundle dengan benar ketika menggunakan metadata fail tanpa metadata --min-update-version dengan anda perlu melewati dengan nilai yang valid berupa

CLI unggah dengan metadata

The --min-update-version Tidak ada satu-satunya cara untuk melakukan kompatibilitas. --auto-min-update-versionBerikut cara kerjanya.

Pertama, ia memeriksa versi yang saat ini diunggah ke saluran. Ia memeriksa kompatibilitas sama seperti bundle compatibility dari versi terbaru di saluran. Jika tidak, maka ia menetapkan min_update_version Dari versi terbaru di saluran tersebut. Jika tidak, maka mengatur ke versi terbaru. min_update_version Kamu akan selalu mendapatkan informasi apa yang

ketika menggunakan opsi ini. Ia akan terlihat seperti ini: min_update_version ketika menggunakan opsi ini. Ini akan terlihat seperti ini:

Min versi update

Jika versi baru tidak kompatibel, maka harus terlihat seperti ini

Versi update tidak kompatibel

Enkripsi Akhir ke Akhir (Tidak Dipercaya)

Bab berjudul “Enkripsi Akhir ke Akhir (Tidak Dipercaya)”

Capgo mendukung enkripsi akhir ke akhir, ini berarti bahwa bundle Anda (code) dienkripsi sebelum dikirim ke cloud dan dienkripsi pada perangkat. Untuk itu, Anda perlu mengenerate pasang kunci RSA, Anda dapat menggunakan perintah berikut untuk menggenerate kunci tersebut.

Sistem enkripsi adalah kombinasi dari RSA dan AES, kunci RSA digunakan untuk mengenkripsi kunci AES, dan kunci AES digunakan untuk mengenkripsi file.

Lihat di bawah untuk informasi lebih lanjut tentang sistem enkripsi.

Bagaimana kriptografi bekerja

Skema Enkripsi

npx @capgo/cli key create

Jika Anda ingin, Anda dapat memberikan: --force untuk mengganti kunci yang sudah ada. Perintah ini akan membuat pasang kunci untuk Anda di aplikasi, dan akan meminta Anda untuk menyimpan kunci pribadi di tempat yang aman. Disarankan untuk tidak mengkomit kunci pribadi ke Git, dan tidak berbagi dengan siapa pun.

Setelah tes lokal Anda, hapuslah kunci dari file konfigurasi dan tambahkanlah di langkah CI dengan key save

Simpan kunci di konfigurasi aplikasi Anda

Judul: Simpan kunci di konfigurasi aplikasi Anda

npx @capgo/cli key save

Jika Anda ingin, Anda bisa memberikan:

--key [/path/to/my/public_key] jalan file kunci publik Anda.

--key-data [publicKey] data kunci publik, jika Anda ingin menggunakan inline. Perintah ini berguna jika Anda mengikuti rekomendasi dan tidak mengkomit kunci di konfigurasi aplikasi Anda.

Pengintegrasian CI

Judul: Pengintegrasian CI

Untuk mengotomatisasi pekerjaan Anda, saya merekomendasikan Anda membuat GitHub melakukan pekerjaan mengirim ke server kami

Tuturan Aksi GitHub

Aplikasi Demo Kami

Judul: Aplikasi Demo Kami

GitHub - Cap-go/demo-app

Jangan lupa mengonfigurasi variabel lingkungan CI dengan kunci API Anda

Jika Anda menggunakan Perintah untuk merencanakan dashboard dan operasi API, hubungkannya dengan API Ringkasan untuk detail implementasi di API Ringkasan, Pendahuluan untuk detail implementasi di Pendahuluan, Kunci API untuk detail implementasi di API Keys, Perangkat untuk detail implementasi di Perangkat. Bundles untuk detail implementasi di Perangkat, dan