Perintah
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Penggunaan
Bab berjudul “Penggunaan”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.
Penggunaan Akun
Bagian berjudul “Login”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.
Dokter
Bagian berjudul “Dokter”npx @capgo/cli doctor
Perintah untuk memeriksa apakah Anda sudah terupdate dengan Capgo paket.
Perintah ini juga akan berguna untuk melaporkan bug.
Aplikasi
Bagian berjudul “Aplikasi”Tambah
Bagian berjudul “Tambah”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.
Daftar
Judul Bagian “Daftar”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.--bundledengan 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.--devicedengan perangkat spesifik yang ingin Anda debug
Pengaturan
Judul bagian “Pengaturan”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
Paket
Judul Bagian “Paket”Upload
Judul Bagian “Upload”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-sslNonaktifkan 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-urlCetak URL bundle ke stdout.--no-keyLepaskan kunci tanda tangan dan kirim update jelas.--no-code-checkLepaskan pengecekan jika notifyAppReady() dipanggil di sumber code dan index ada di folder root.--display-iv-sessionTampilkan 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-versionTetapkan versi update minimal berdasarkan paket native.--ignore-metadata-checkLepaskan pengecekan metadata (node_modules) saat mengunggah.--ignore-checksum-checkLepaskan pengecekan cek checksum saat mengunggah.--timeout <timeout>Waktu waktu tunggu untuk proses unggah dalam detik.--deltaUnggah file Delta (manifest) bersama dengan bundle penuh.--delta-onlyUnggah hanya perubahan Delta (manifest), melompati bundle penuh.--no-deltaMenghapus unggah Delta (manifest) (bermanfaat jika mode terapkan secara instan tetapi Anda ingin bundle penuh).autoUpdateUnggah bundle menggunakan protokol tus.--tusMenggunakan protokol multipart untuk mengunggah data ke S3, Tidak Aktif, gunakan TUS sebaliknya.--multipartChecksum 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-bundleSet 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.
Hapus
Judul bagian “Hapus”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.--bundledengan nomor versi hanya akan menghapus versi ini.
Pembersihan
Judul bagian “Pembersihan”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.
Enkripsi
Bagian berjudul “Enkripsi”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.
Encrypt V2
Bagian berjudul “Encrypt V2”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.
Decrypt
Bagian berjudul “Decrypt”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.
Decrypt V2
Judul Bagian “Decrypt V2”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.--jsonuntuk menghasilkan informasi sebagai JSON.--no-code-checkuntuk mengabaikan pengecekan code dan mengirim bundle apa adanya.--key-v2untuk menggunakan sistem enkripsi baru. Ini diperlukan karena sistem enkripsi baru menggunakan checksum yang lebih baik untuk memverifikasi integritas file.
Kemampuan Kompatibilitas
Judul bagian “Kemampuan Kompatibilitas”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.--textgunakan 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)
Saluran
Judul bagian “Saluran”Tambahkan
Judul bagian “Tambahkan”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.
Hapus
Judul bagian “Hapus”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.
Daftar
Judul bagian “Daftar”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.
Tetapkan
Judul bagian “Tetapkan”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.--latestmendapatkan versi bundle daripackage.json:version, tidak dapat digunakan bersama--bundle.--state [ normal | default ]menetapkan status saluran, dapatnormalataudefault. Satu saluran perlu untukdefault.--downgrademengizinkan saluran untuk mengirimkan versi turun (downgrade) ke perangkat.--no-downgrademenghambat saluran untuk mengirimkan versi turun (downgrade) ke perangkat.--upgrademengizinkan saluran untuk mengirimkan versi naik (upgrade) ke perangkat.--no-upgrademenghambat saluran untuk mengirimkan versi naik (upgrade) ke perangkat.--iosmengizinkan saluran untuk mengirimkan versi ke perangkat iOS.--no-iosmenghambat saluran untuk mengirimkan versi ke perangkat iOS.--androidmengizinkan saluran untuk mengirimkan versi ke perangkat android.--no-androidmencegah channel untuk mengirimkan versi ke perangkat android.--self-assignmengizinkan perangkat untuk secara otomatis menetapkan diri ke channel ini.--no-self-assignmencegah perangkat untuk secara otomatis menetapkan diri ke channel ini.--disable-auto-update STRATEGYNonaktifkan strategi pembaruan otomatis untuk channel ini. Opsi yang mungkin adalah: major, minor, patch, metadata, none.--apikey [key]API untuk menghubungkan ke akun Anda.
Nonaktifkan strategi pembaruan.
Judul bagian “Nonaktifkan strategi pembaruan”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:
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
Kemudian pergi ke saluran yang gagal dan klik pada Bundle number. Ini harus membawa Anda ke halaman bundle.
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:
Sekarang, Anda mungkin tidak ingin menetapkan data ini secara manual setiap kali Anda memperbarui. Beruntung, CLI akan mencegah Anda mengirimkan pembaruan tanpa metadata ini
Untuk mengunggah bundle dengan benar ketika menggunakan metadata option Anda perlu melewati --min-update-version dengan semver yang valid. Sesuatu seperti ini:
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
Versi update minimum tidak kompatibel
Enkripsi akhir-ke-akhir (Tidak dipercaya)
Bagian berjudul “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.
Skema enkripsi
Buat kunci untuk aplikasi Anda
Bagian berjudul “Buat kunci untuk aplikasi Anda”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
Simpan kunci di konfigurasi aplikasi Anda
Bagian berjudul “Simpan kunci di konfigurasi aplikasi Anda”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.
Pengintegrasian CI
Bagian berjudul “Pengintegrasian CI”Untuk mengotomatisasi pekerjaan, saya merekomendasikan Anda membuat GitHub melakukan pekerjaan mengirim ke server kami
Aplikasi demo kami
Bagian berjudul “Aplikasi demo kami”Jangan lupa untuk mengonfigurasi variabel lingkungan CI dengan kunci API Anda
Teruskan dari Perintah
Judul Bagian “Teruskan dari Perintah”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.