Lompat ke konten

Perintah

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

npx @capgo/cli@latest init [apikey]

Methode ini ada untuk memandu Anda secara bertahap.

Metode ini akan menambahkan aplikasi Anda ke Capgo. Selain itu, metode ini akan menambahkan code ke aplikasi Anda untuk memvalidasi pembaruan. Begitu juga, metode ini akan membangun aplikasi Anda. Selain itu, metode ini akan mengunggah aplikasi Anda ke Capgo. Dan metode ini akan membantu Anda untuk memeriksa apakah pembaruan berhasil.

npx @capgo/cli login [apikey]

Metode ini ada untuk mengingat apikey untuk Anda.

Optionally Anda bisa memberikan:

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

npx @capgo/cli doctor

Perintah untuk memeriksa apakah Anda sudah terupdate dengan Capgo paket.

Perintah ini juga akan berguna untuk melaporkan bug.

npx @capgo/cli app add [appId]

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

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

Opsional, Anda dapat memberikan:

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

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

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

npx @capgo/cli app set [appId]

[appId] Apakah 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 memiliki nama kustom di daftar.
  • --retention [retention] periode penyimpanan aplikasi bundel dalam hari, 0 secara default = tak terbatas.
  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.

npx @capgo/cli app list [appId]

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

Bisa juga Anda berikan:

  • --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.

Jika perlu, Anda dapat memberikan:

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

npx @capgo/cli app debug [appId]

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

Opsionalnya, Anda dapat memberikan:

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

npx @capgo/cli app setting [path]

Ubah konfigurasi Capacitor.

[path] - jalur pengaturan yang Anda ingin ubah. Misalnya, untuk mengubah appIdAnda harus memberikan appIdAnda harus memberikan salah satu dari capacitor-updaterdengan plugins.CapacitorUpdater.autoUpdate Anda harus memberikan salah satu dari --string off.

dengan --string atau --bool!

Pilihan:

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

npx @capgo/cli bundle upload [appId]

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

Jika perlu, Anda bisa memberikan:

  • --apikey <apikey> API key untuk menghubungkan ke akun Anda.
  • --path <path> Path folder untuk mengunggah.
  • --channel <channel> Saluran untuk dihubungkan.
  • --external <url> Tautan ke URL eksternal daripada mengunggah ke Cloud Capgo.
  • --iv-session-key <key> Atur IV dan kunci sesi untuk URL paket eksternal.
  • --s3-endpoint <s3Endpoint> URL endpoint S3. Tidak berfungsi dengan delta unggah atau opsi eksternal.
  • --s3-region <region> Wilayah untuk bucket S3 Anda.
  • --s3-apikey <apikey> API kunci untuk endpoint S3 Anda.
  • --s3-apisecret <apisecret> API rahasia 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 unggah S3.
  • --key <key> Path 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 Lepaskan kunci tanda tangan dan kirim update jelas.
  • --no-code-check Lepaskan pengecekan jika notifyAppReady() dipanggil di sumber code dan index ada di folder root.
  • --display-iv-session Tampilkan di konsol IV dan kunci sesi yang digunakan untuk mengenkripsi update.
  • --bundle <bundle> Nomor versi bundle untuk diunggah.
  • --min-update-version <minUpdateVersion> Versi minimal yang diperlukan untuk memperbarui ke versi ini. Digunakan hanya jika auto update dinonaktifkan di metadata di channel.
  • --auto-min-update-version Tetapkan versi update minimal berdasarkan paket native.
  • --ignore-metadata-check Lepaskan pengecekan metadata (node_modules) saat mengunggah.
  • --ignore-checksum-check Lepaskan pengecekan cek checksum saat mengunggah.
  • --timeout <timeout> Waktu waktu tunggu untuk proses unggah dalam detik.
  • --delta Unggah file Delta (manifest) bersama dengan bundle penuh.
  • --delta-only Unggah hanya perubahan Delta (manifest), melompati bundle penuh.
  • --no-delta Menghapus unggah Delta (manifest) (bermanfaat jika mode terapkan secara instan tetapi Anda ingin bundle penuh). autoUpdate Unggah bundle menggunakan protokol tus.
  • --tus Menggunakan protokol multipart untuk mengunggah data ke S3, Tidak Aktif, gunakan TUS sebaliknya.
  • --multipart Checksum yang dienkripsi (tanda tangan). Digunakan hanya ketika mengunggah bundle eksternal.
  • --encrypted-checksum <encryptedChecksum> Jalur ke file package.json. Bermanfaat untuk monorepos.
  • --package-json <packageJson> Set bundle di __CAPGO_KEEP_0__.config.json.
  • --auto-set-bundle Set the bundle in capacitor.config.json.
  • --node-modules <nodeModules> ⭐️ Opsi eksternal membantu mengaktifkan 2 kasus: perusahaan dengan kekhawatiran privasi, jangan kirim __CAPGO_KEEP_0__ ke pihak ketiga dan aplikasi lebih besar dari 200 MB. Dengan pengaturan ini, __CAPGO_KEEP_1__ hanya menyimpan link ke zip dan mengirim link ke semua aplikasi.

⭐️ Opsi eksternal membantu mengaktifkan 2 kasus: perusahaan dengan kekhawatiran privasi, jangan kirim code ke pihak ketiga dan aplikasi lebih besar dari 200 MB. Dengan pengaturan ini, Capgo hanya menyimpan link ke zip dan mengirim link ke semua aplikasi.

👀 Capgo cloud tidak pernah melihat apa yang ada di dalam link (untuk opsi eksternal), 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”.

Contoh dari package.json untuk 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 diuraikan di sini.

Opsionalnya, Anda dapat memberikan:

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

npx @capgo/cli bundle delete [appId]

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

Opsionalnya, Anda dapat memberikan:

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

dalam rentang SemVer untuk versi mayor ke Cloud

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

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

Secara opsional, Anda dapat memberikan:

  • --apikey [key] API kunci untuk menghubungkan ke akun Anda.
  • --bundle [majorVersion] versi yang Anda inginkan untuk menghapus paket sebelumnya, akan tetapkan yang terakhir + numberToKeep.
  • --keep [numberToKeep] jumlah paket yang Anda inginkan untuk tetap (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 tetap.

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

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

Peringatan: Perintah ini sudah tidak digunakan lagi dan akan dihapus di rilis besar berikutnya. Silakan menggunakan sistem enkripsi baru. npx @capgo/cli bundle encrypt [path/to/zip]

Perintah ini digunakan ketika Anda menggunakan sumber eksternal untuk menyimpan code atau untuk tujuan tes.

Secara opsional, 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 ivSessionKeydan menghasilkan zip yang dienkripsi, untuk digunakan bersama dengan perintah unggah atau perintah dekripsi.

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

Perintah ini digunakan ketika Anda menggunakan sumber eksternal untuk menyimpan code Anda atau untuk tujuan tes. Checksum adalah SHA256 dari bundle (dibuat oleh —key-v2), digunakan untuk memverifikasi integritas file setelah dekripsi. Checksum akan dienkripsi dengan kunci pribadi dan dikirim bersama dengan bundle. Dalam enkripsi v2, checksum ditingkatkan menjadi “tanda tangan” dari bundle.

Optionally, 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 mengoutput informasi sebagai JSON. Perintah akan mencetak ivSessionKeydan menghasilkan zip yang dienkripsi, untuk digunakan bersama dengan perintah unggah atau perintah dekripsi.

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

Optionally, Anda dapat memberikan:

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

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

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

Dapat disediakan secara opsional:

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

npx @capgo/cli bundle zip [appId]

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

Opsional, Anda dapat memberikan:

  • --path [/path/to/my/bundle] untuk mengunggah folder tertentu.
  • --bundle [1.0.0] untuk menetapkan nomor versi bundle pada nama file.
  • --name [myapp] untuk mengganti nama file.
  • --json untuk menghasilkan informasi sebagai JSON.
  • --no-code-check untuk mengabaikan pengecekan code dan mengirim bundle apa adanya.
  • --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. [channelName] nama saluran untuk dicek.

Anda dapat memberikan secara opsional:

  • --apikey [key] API 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> Daftar jalur ke node_modules. Berguna untuk monorepos (dipisahkan oleh koma, misalnya: ../../node_modules,./node_modules)

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

[channelName] nama saluran baru Anda, seperti production atau beta. [appId] ID aplikasi Anda dalam format com.test.app dijelaskan di sini.

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

[channelName] nama saluran yang ingin Anda hapus. [appId] ID aplikasi Anda dalam format com.test.app dijelaskan di sini.

npx @capgo/cli channel list [appId]

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

Dapat Anda berikan secara opsional:

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

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

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

Dapat Anda berikan secara opsional:

  • --bundle [1.2.3] aplikasi bundel Anda yang sudah dikirim ke cloud, untuk menghubungkannya ke saluran.
  • --latest mendapatkan versi bundle dari package.json:version, tidak dapat digunakan bersama --bundle.
  • --state [ normal | default ] menetapkan status saluran, dapat normal atau default. Satu saluran perlu untuk default.
  • --downgrade mengizinkan saluran untuk mengirimkan versi turun (downgrade) ke perangkat.
  • --no-downgrade menghambat saluran untuk mengirimkan versi turun (downgrade) ke perangkat.
  • --upgrade mengizinkan saluran untuk mengirimkan versi naik (upgrade) ke perangkat.
  • --no-upgrade menghambat saluran untuk mengirimkan versi naik (upgrade) ke perangkat.
  • --ios mengizinkan saluran untuk mengirimkan versi ke perangkat iOS.
  • --no-ios menghambat saluran untuk mengirimkan versi ke perangkat iOS.
  • --android mengizinkan saluran untuk mengirimkan versi ke perangkat android.
  • --no-android mencegah channel untuk mengirimkan versi ke perangkat android.
  • --self-assign mengizinkan perangkat untuk secara otomatis menetapkan diri ke channel ini.
  • --no-self-assign mencegah perangkat untuk secara otomatis menetapkan diri ke channel ini.
  • --disable-auto-update STRATEGY Nonaktifkan strategi pembaruan otomatis untuk channel ini. Opsi yang mungkin adalah: major, minor, patch, metadata, none.
  • --apikey [key] API untuk menghubungkan ke akun Anda.

Ada beberapa cara untuk mengatasi nonaktifkan pembaruan untuk versi yang terlalu tua.
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 native baseline 0.0.0 -> bundle target 1.0.0. Angka utama adalah angka yang ditonjolkan (1.0.0 dan 0.0.0).
Kedua adalah strategi. Ini mencegah pembaruan ketika bundle target memiliki angka utama atau minor yang berbeda dengan dasar garis lurus perangkat native, seperti minor atau 0.0.0 -> 1.1.0 Ketiga, strategi. Ini ditambahkan ke __CAPGO_KEEP_0__ sebagai mode yang sangat ketat. Tidak disarankan untuk digunakan kecuali Anda paham sepenuhnya bagaimana cara kerjanya. Untuk menerima pembaruan, kondisi-kondisi berikut harus dipenuhi: 1.1.0 -> 1.2.0.

Angka utama adalah sama antara bundle target dan 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:

  • Angka patch adalah sama antara bundle target dan version_build
  • Hanya tanda versi tambahan yang dapat berbeda, seperti prerelease ( version_build
  • ) atau metadata bangunan ( version_build
  • __CAPGO_KEEP_0__-beta.2__CAPGO_KEEP_0__+build.2)

Berikut adalah 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

Perbandingan strategi menggunakan basis native yang dikirim sebagai version_build, bukan bundle yang diunduh saat ini yang dikirim sebagai version_name.

Terakhir, strategi yang paling rumit. Strategi. metadata Pertama-tama, Anda perlu tahu bahwa awalnya setelah Anda mengaktifkannya, update
AKAN DIBLOKIR __CAPGO_KEEP_0__ Gagal sebagai saluran karena kurangnya metadata yang diperlukan.
Jika saluran kurang metadata Anda akan melihat pesan seperti ini:

Tidak dapat menemukan metadata

Jika Anda melihat sesuatu seperti ini Anda tahu bahwa Anda harus pergi ke bundle saat ini untuk saluran yang gagal dan atur metadata.
Pertama-tama, tentukan saluran yang gagal. Anda dapat melakukannya dengan melihat di misconfigured kolom

Tabel yang tidak terkonfigurasi

Kemudian pergi ke saluran yang gagal dan klik pada Bundle number. Ini harus membawa Anda ke halaman bundle.

Lokasi saluran yang gagal

Setelah itu isi Minimal update version bidang. Ini harus merupakan semver.
Jika nilai yang Anda masukkan bukan semver Anda akan mendapatkan kesalahan, tetapi jika semuanya berjalan dengan benar Anda seharusnya melihat sesuatu seperti ini:

Set versi minimum

Sekarang, Anda mungkin tidak ingin menetapkan data ini secara manual setiap kali Anda memperbarui. Beruntung, CLI akan mencegah Anda mengirimkan pembaruan tanpa metadata ini

CLI gagal tanpa metadata

Untuk mengunggah bundle dengan benar ketika menggunakan metadata option Anda perlu melewati --min-update-version dengan semver yang valid. Sesuatu seperti ini:

CLI unggah dengan metadata

The --min-update-version bukanlah satu-satunya cara untuk melakukan konsistensi. Terdapat juga yang bernama --auto-min-update-versionBerikut adalah cara kerjanya.

Pertama, itu memeriksa versi yang saat ini diunggah ke saluran. Ia memeriksa konsistensi sama seperti bundle compatibility perintah akan melakukan. Kedua, jika versi baru 100% kompatibel maka ia mengambil min_update_version dari versi terbaru di saluran. Jika tidak, maka ia mengatur min_update_version ke nomor bundel versi baru yang diunggah. Anda akan selalu mendapatkan informasi apa itu

ketika menggunakan opsi ini. Ia akan terlihat seperti ini: min_update_version Versi update minimum

Jika versi baru tidak kompatibel maka ia akan terlihat seperti ini

Versi update minimum tidak kompatibel

Enkripsi akhir-ke-akhir (Tidak dipercaya)

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

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 diinginkan, Anda dapat memberikan: --force untuk menggantikan 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. Dianjurkan untuk tidak mengkomit kunci pribadi ke Git, dan tidak berbagi dengan siapa pun.

Setelah melakukan tes lokal, hapus kunci dari file konfigurasi dan tambahkan di langkah CI dengan key save

npx @capgo/cli key save

Jika Anda ingin, Anda dapat 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.

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

Tutorial GitHub

GitHub - Cap-go/demo-app

Jangan lupa untuk mengonfigurasi variabel lingkungan CI dengan kunci API Anda

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