๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฆ bundle

๐Ÿ“ฆ ์—…๋กœ๋“œ, ํ˜ธํ™˜์„ฑ ๊ฒ€์‚ฌ, ์•”ํ˜ธํ™”๋ฅผ ํฌํ•จํ•˜์—ฌ Capgo Cloud ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์•ฑ ๋ฒˆ๋“ค์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

โฌ†๏ธ ์—…๋กœ๋“œ

โ€œ โฌ†๏ธ Uploadโ€ ์„น์…˜

Alias: u

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle upload

๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์•ฑ ๋ฒˆ๋“ค์„ Capgo Cloud์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„์ „์€ 0.0.0๋ณด๋‹ค ์ปค์•ผ ํ•˜๋ฉฐ ์ค‘๋ณต๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ์„ ์œ„ํ•ด ์‚ญ์ œ๋œ ๋ฒ„์ „์€ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. External ์˜ต์…˜: URL ๋งํฌ๋งŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค (200MB ์ด์ƒ์˜ ์•ฑ์ด๋‚˜ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ์š”๊ตฌ์‚ฌํ•ญ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์œ ์šฉ). Capgo์€ ์™ธ๋ถ€ ์ฝ˜ํ…์ธ ๋ฅผ ์ ˆ๋Œ€ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด์•ˆ์„ ์œ„ํ•ด ์•”ํ˜ธํ™”๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

Example:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production,beta

๋ฒ„์ „์„ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ฑ„๋„(๋˜๋Š” ์ตœ์‹  ์›๊ฒฉ ์•ฑ ๋ฒ„์ „)์—์„œ ๋‹ค์Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ semver๋ฅผ ์ž๋™์œผ๋กœ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. --bundle. CI ํ™˜๊ฒฝ์—์„œ ๋‹ค์Œ ์ƒํ™ฉ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค: package.json ์ด๋ฏธ Capgo์— ์žˆ๋Š” ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle upload --channel=production --auto-bump
npx @capgo/cli@latest bundle upload --auto-bump major
npx @capgo/cli@latest bundle upload --auto-bump minor # default when the flag has no value
npx @capgo/cli@latest bundle upload --auto-bump patch # alias: fix
npx @capgo/cli@latest bundle upload --auto-bump metadata
npx @capgo/cli@latest bundle upload --channel=production --auto-bump ai

GCP๋Š” --auto-bump ai, Capgo Cloudflare Workers AI๊ฐ€ ๋กœ์ปฌ ๋ฒˆ๋“ค ํŒŒ์ผ๊ณผ ์ด์ „ Capgo/channel ๋ธํƒ€ ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋ถ„์„ํ•˜๊ณ , major | minor | patch | metadata CLI ๋กœ๊ทธ์— ์งง์€ ์ด์œ ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ Capgo ๋ฒ„์ „์ด ์—†๋Š” ๊ฒฝ์šฐ AI ๋ถ„์„์€ ๊ฑด๋„ˆ๋›ฐ๋ฉฐ, ๋ฒ„์ „์€ ๊ธฐ๋ณธ์ ์œผ๋กœ patch.

์˜ต์…˜:

ํŒŒ๋ผ๋ฏธํ„ฐํƒ€์ž…์„ค๋ช…
-astring๊ณ„์ •๊ณผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ API ํ‚ค
-pstring์—…๋กœ๋“œํ•  ํด๋” ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด capacitor.config์— ์„ค์ •๋œ webDir์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
-cstring์—ฐ๊ฒฐํ•  ์ฑ„๋„์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ฑ„๋„์„ ์ง€์ •ํ•˜๋ ค๋ฉด production,beta์™€ ๊ฐ™์ด ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์„ธ์š”.
โ€”rolloutstring์—…๋กœ๋“œ๋œ ๋ฒˆ๋“ค์„ ํ•ด๋‹น ์ฑ„๋„์˜ ๋กค์•„์›ƒ ๋Œ€์ƒ์œผ๋กœ ์„ค์ •ํ•˜๋ฉฐ, ๋น„์œจ์€ 0์—์„œ 100 ์‚ฌ์ด๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
โ€”stableboolean๋กค์•„์›ƒ์ด ์„ค์ •๋œ ์ฑ„๋„์—์„œ ๋กค์•„์›ƒ ๋Œ€์ƒ์„ ์„ค์ •ํ•˜๋Š” ๋Œ€์‹  stable ํด๋ฐฑ์„ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.
โ€”rollout-percentage-bpsstring์—…๋กœ๋“œ๋œ ๋ฒˆ๋“ค์˜ ๋กค์•„์›ƒ ๋น„์œจ์„ 0์—์„œ 10000 ์‚ฌ์ด์˜ basis points ๋‹จ์œ„๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
โ€”rollout-cache-ttl-secondsstringCloudflare ๋กค์•„์›ƒ ๊ฒฐ์ • ์บ์‹œ TTL(์ดˆ ๋‹จ์œ„)
-estringCapgo Cloud์— ์—…๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  ์™ธ๋ถ€ URL๋กœ ์—ฐ๊ฒฐ
โ€”iv-session-keystring์™ธ๋ถ€ ๋ฒˆ๋“ค URL์šฉ IV ๋ฐ ์„ธ์…˜ ํ‚ค ์„ค์ •
โ€”s3-regionstringS3 ๋ฒ„ํ‚ท์˜ ๋ฆฌ์ „
โ€”s3-apikeystringS3 ์—”๋“œํฌ์ธํŠธ์šฉ API ํ‚ค
โ€”s3-apisecretstringS3 ์—”๋“œํฌ์ธํŠธ์šฉ API secret
โ€”s3-endpointstringS3 ์—”๋“œํฌ์ธํŠธ URL
โ€”s3-bucket-namestringAWS S3 ๋ฒ„ํ‚ท ์ด๋ฆ„
โ€”s3-portstringS3 ์—”๋“œํฌ์ธํŠธ ํฌํŠธ
โ€”no-s3-sslbooleanS3 upload ์‹œ SSL ๋น„ํ™œ์„ฑํ™”
โ€”key-v2string๊ฐœ์ธ ์„œ๋ช… ํ‚ค ์ปค์Šคํ…€ ๊ฒฝ๋กœ (v2 ์‹œ์Šคํ…œ)
โ€”key-data-v2string๊ฐœ์ธ ์„œ๋ช… ํ‚ค (v2 ์‹œ์Šคํ…œ)
โ€”bundle-urlbooleanbundle URL์„ stdout์— ์ถœ๋ ฅ
โ€”no-keyboolean์„œ๋ช… ํ‚ค๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ํ‰๋ฌธ ์—…๋ฐ์ดํŠธ ์ „์†ก
โ€”no-code-checkboolean์†Œ์Šค code ๋‚ด notifyAppReady() ํ˜ธ์ถœ ์—ฌ๋ถ€ ๋ฐ ๋ฃจํŠธ ํด๋”์˜ index ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ ๋ฌด์‹œ
โ€”display-iv-sessionboolean์—…๋ฐ์ดํŠธ ์•”ํ˜ธํ™”์— ์‚ฌ์šฉ๋œ IV ๋ฐ ์„ธ์…˜ ํ‚ค๋ฅผ ์ฝ˜์†”์— ํ‘œ์‹œ
-bstring์—…๋กœ๋“œํ•  ๋ฒˆ๋“ค์˜ ๋ฒ„์ „ ๋ฒˆํ˜ธ
โ€”auto-bumpstring์ฑ„๋„์— ์—ฐ๊ฒฐ๋œ ๋ฒˆ๋“ค ๋˜๋Š” ์ตœ์‹  ์›๊ฒฉ ์•ฑ ๋ฒ„์ „์—์„œ ์ž๋™ ์ฆ๊ฐ€. ๋ ˆ๋ฒจ: major, minor(๊ธฐ๋ณธ๊ฐ’), patch(fix ๋ณ„์นญ), metadata, ๋˜๋Š” ai(Workers AI๊ฐ€ ๋กœ์ปฌ๊ณผ ์ด์ „ ๋ธํƒ€ manifest๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋ ˆ๋ฒจ ์ถ”๋ก , ์ด์ „ Capgo ๋ฒ„์ „์ด ์—†์œผ๋ฉด patch๋กœ ๋Œ€์ฒด). ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด๋ฆ„์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ bump ์ˆ˜ํ–‰(์‚ญ์ œ๋œ ์ด๋ฆ„์€ ์ ์œ  ์ƒํƒœ ์œ ์ง€). โ€”bundle (-b)์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
โ€”linkstring์™ธ๋ถ€ ๋ฆฌ์†Œ์Šค ์—ฐ๊ฒฐ (์˜ˆ: GitHub release)
โ€”commentstring์ด ๋ฒ„์ „์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ, ์ปค๋ฐ‹ ํ•ด์‹œ, ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๋“ฑ์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€”min-update-versionstring์ด ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ตœ์†Œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ฑ„๋„์˜ ์ž๋™ ์—…๋ฐ์ดํŠธ ์„ค์ •์ด metadata๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
โ€”auto-min-update-versionboolean๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ‚ค์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์†Œ ์—…๋ฐ์ดํŠธ ๋ฒ„์ „์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
โ€”ignore-metadata-checkboolean์—…๋กœ๋“œ ์‹œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(node_modules) ์ฒดํฌ๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
โ€”fail-on-incompatibleboolean๋ฒˆ๋“ค์ด ์ฑ„๋„์˜ ํ˜„์žฌ ๋„ค์ดํ‹ฐ๋ธŒ ํŒจํ‚ค์ง€์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, ์—…๋กœ๋“œ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ  ์‹คํŒจ(exit non-zero) ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ™”ํ˜• ํ„ฐ๋ฏธ๋„์—์„œ๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ๋นŒ๋“œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฑฐ์ ˆ ์‹œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. โ€”ignore-metadata-check์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
โ€”ignore-checksum-checkboolean์—…๋กœ๋“œ ์‹œ ์ฒดํฌ์„ฌ ์ฒดํฌ๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
โ€”force-crc32-checksumboolean์—…๋กœ๋“œ ์‹œ CRC32 ์ฒดํฌ์„ฌ ๊ฐ•์ œ ์ ์šฉ (์ž๋™ ๊ฐ์ง€ ๋ฌด์‹œ)
โ€”timeoutstring์—…๋กœ๋“œ ํ”„๋กœ์„ธ์Šค ํƒ€์ž„์•„์›ƒ(์ดˆ)
โ€”multipartboolean[DEPRECATED] ๋Œ€์‹  โ€”tus๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. S3 ์—…๋กœ๋“œ์— multipart ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค
โ€”zipbooleanzip์œผ๋กœ Capgo ํด๋ผ์šฐ๋“œ์— ๋ฒˆ๋“ค ์—…๋กœ๋“œ (๋ ˆ๊ฑฐ์‹œ)
โ€”tusbooleanTUS๋กœ Capgo ํด๋ผ์šฐ๋“œ์— ๋ฒˆ๋“ค ์—…๋กœ๋“œ
โ€”tus-chunk-sizestringTUS ์žฌ๊ฐœ ์—…๋กœ๋“œ์˜ ์ฒญํฌ ํฌ๊ธฐ(๋ฐ”์ดํŠธ, ๊ธฐ๋ณธ๊ฐ’: auto)
โ€”partialboolean[DEPRECATED] ๋Œ€์‹  โ€”delta๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ฆ๋ถ„ ์—…๋ฐ์ดํŠธ๋ฅผ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
โ€”partial-onlyboolean[DEPRECATED] ๋Œ€์‹  โ€”delta-only๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ „์ฒด ๋ฒˆ๋“ค์€ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์ฆ๋ถ„ ์—…๋ฐ์ดํŠธ๋งŒ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
โ€”deltaboolean๋Œ€์šฉ๋Ÿ‰ zip ๋‹ค์šด๋กœ๋“œ ๋Œ€์‹ , ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋งŒ ์—…๋กœ๋“œํ•˜๋Š” delta ์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•ด ์ฆ‰๊ฐ์ ์ด๊ณ  ๋งค์šฐ ๋น ๋ฅธ ์—…๋ฐ์ดํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
โ€”delta-onlyboolean์ตœ๋Œ€ ์†๋„๋ฅผ ์œ„ํ•ด ์ „์ฒด ๋ฒˆ๋“ค ์—†์ด delta ์—…๋ฐ์ดํŠธ๋งŒ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค (๋Œ€๊ทœ๋ชจ ์•ฑ์— ์œ ์šฉ).
โ€”no-deltaboolean์ฆ‰๊ฐ์ ์ธ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด๋„ delta ์—…๋ฐ์ดํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
โ€”encrypted-checksumstring์•”ํ˜ธํ™”๋œ ์ฒดํฌ์„ฌ(์„œ๋ช…)์ž…๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๋ฒˆ๋“ค์„ ์—…๋กœ๋“œํ•  ๋•Œ๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
โ€”auto-set-bundlebooleancapacitor.config.json์— ๋ฒˆ๋“ค ์„ค์ •
โ€”dry-uploadboolean๋ฒˆ๋“ค ์—…๋กœ๋“œ ํ”„๋กœ์„ธ์Šค ์‹œ๋ฎฌ๋ ˆ์ด์…˜: ํŒŒ์ผ ์—…๋กœ๋“œ๋‚˜ ์ฑ„๋„ ์—…๋ฐ์ดํŠธ ์—†์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ ˆ์ฝ”๋“œ๋งŒ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค (Capgo ๋‚ด๋ถ€ ํ…Œ์ŠคํŠธ์šฉ)
โ€”package-jsonstring๋ชจ๋…ธ๋ ˆํฌ์šฉ package.json ํŒŒ์ผ ๊ฒฝ๋กœ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)
โ€”node-modulesstring๋ชจ๋…ธ๋ ˆํฌ์šฉ node_modules ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)
โ€”encrypt-partialboolean๋ธํƒ€ ์—…๋ฐ์ดํŠธ ํŒŒ์ผ ์•”ํ˜ธํ™” (์—…๋ฐ์ดํ„ฐ 6.14.4 ์ด์ƒ ๋ฒ„์ „์—์„œ ์ž๋™ ํ™œ์„ฑํ™”)
โ€”delete-linked-bundle-on-uploadboolean์—…๋กœ๋“œํ•˜๋ ค๋Š” ์ฑ„๋„์— ํ˜„์žฌ ์—ฐ๊ฒฐ๋œ ๋ฒˆ๋“ค์„ ์ฐพ์•„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค
โ€”no-brotli-patternsstringBrotli ์••์ถ•์—์„œ ์ œ์™ธํ•  ํŒŒ์ผ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ glob ํŒจํ„ด, ์˜ˆ: โ€œ.jpg,.pngโ€)
โ€”disable-brotliboolean์—…๋ฐ์ดํ„ฐ ๋ฒ„์ „์ด ์ง€์›ํ•˜๋”๋ผ๋„ Brotli ์••์ถ•์„ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค
โ€”version-exists-okboolean๋ฒˆ๋“ค ๋ฒ„์ „์ด ์ด๋ฏธ ์กด์žฌํ•˜๋ฉด ์„ฑ๊ณต์ ์œผ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋…ธ๋ ˆํฌ CI/CD ์›Œํฌํ”Œ๋กœ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค
โ€”self-assignboolean๋””๋ฐ”์ด์Šค๊ฐ€ ์ด ์ฑ„๋„์— ์ž๋™์œผ๋กœ ์ฐธ์—ฌํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค (์—…๋ฐ์ดํŠธ ์ฑ„๋„ ์„ค์ •)
โ€”qr-previewboolean์—…๋กœ๋“œ ํ›„ ์ด ๋ฒˆ๋“ค ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์œ„ํ•œ ํ„ฐ๋ฏธ๋„ QR code๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
โ€”send-update-notificationboolean์—ฐ๊ฒฐ๋œ ์ฑ„๋„์˜ ๋ฒˆ๋“ค์„ ์—…๋ฐ์ดํŠธํ•œ ํ›„ ๊ธฐ๊ธฐ์— ๋„ค์ดํ‹ฐ๋ธŒ ์—…๋ฐ์ดํŠธ ํ™•์ธ ์•Œ๋ฆผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
โ€”supa-hoststring์‚ฌ์šฉ์ž ์ •์˜ Supabase ํ˜ธ์ŠคํŠธ URL (Capgo ๊ฐœ๋ฐœ ๋˜๋Š” ์…€ํ”„ ํ˜ธ์ŠคํŒ…์šฉ)
โ€”supa-anonstring์‚ฌ์šฉ์ž ์ •์˜ Supabase anon key (์…€ํ”„ ํ˜ธ์ŠคํŒ…์šฉ)
โ€”verboseboolean์ƒ์„ธ ๋กœ๊ทธ๋ฅผ ํฌํ•จํ•œ ์ƒ์„ธ ์ถœ๋ ฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle compatibility

๐Ÿงช ์—…๋ฐ์ดํŠธ๊ฐ€ ์•ˆ์ „ํ•œ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด Capgo Cloud์—์„œ ํŠน์ • ์ฑ„๋„๊ณผ ๋ฒˆ๋“ค์˜ ํ˜ธํ™˜์„ฑ์„ ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle compatibility com.example.app --channel production

์˜ต์…˜:

ํŒŒ๋ผ๋ฏธํ„ฐํƒ€์ž…์„ค๋ช…
-astring๊ณ„์ •๊ณผ ์—ฐ๊ฒฐํ•  API ํ‚ค
-cstringํ˜ธํ™˜์„ฑ์„ ํ™•์ธํ•  Channel
โ€”textboolean์ด๋ชจ์ง€ ๋Œ€์‹  ํ…์ŠคํŠธ ์ถœ๋ ฅ
โ€”package-jsonstring๋ชจ๋…ธ๋ ˆํฌ์˜ package.json ํŒŒ์ผ ๊ฒฝ๋กœ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)
โ€”node-modulesstring๋ชจ๋…ธ๋ ˆํฌ์˜ node_modules ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)
โ€”supa-hoststring์ปค์Šคํ…€ Supabase ํ˜ธ์ŠคํŠธ URL (์…€ํ”„ ํ˜ธ์ŠคํŒ… ๋˜๋Š” Capgo ๊ฐœ๋ฐœ์šฉ)
โ€”supa-anonstring์ปค์Šคํ…€ Supabase anon key (์…€ํ”„ ํ˜ธ์ŠคํŒ…์šฉ)
ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle releaseType

๐Ÿงญ ์ฑ„๋„์˜ ์ตœ์‹  ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ํ˜ธํ™˜์„ฑ์— ๋”ฐ๋ผ โ€œnativeโ€ ๋˜๋Š” โ€œOTAโ€๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle releaseType com.example.app --channel production

์˜ต์…˜:

ํŒŒ๋ผ๋ฏธํ„ฐํƒ€์ž…์„ค๋ช…
-astring๊ณ„์ • ์—ฐ๊ฒฐ์„ ์œ„ํ•œ API ํ‚ค
-cstring๋น„๊ต ๋Œ€์ƒ ์ฑ„๋„
โ€”package-jsonstring๋ชจ๋…ธ๋ ˆํฌ์˜ package.json ํŒŒ์ผ ๊ฒฝ๋กœ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)
โ€”node-modulesstring๋ชจ๋…ธ๋ ˆํฌ์˜ node_modules ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)
โ€”supa-hoststring์ปค์Šคํ…€ Supabase ํ˜ธ์ŠคํŠธ URL (์…€ํ”„ ํ˜ธ์ŠคํŒ… ๋˜๋Š” Capgo ๊ฐœ๋ฐœ์šฉ)
โ€”supa-anonstring์ปค์Šคํ…€ Supabase anon key (์…€ํ”„ ํ˜ธ์ŠคํŒ…์šฉ)

Alias: d

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle delete

๐Ÿ—‘๏ธ Capgo Cloud์—์„œ ํŠน์ • ๋ฒˆ๋“ค์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ๋ฒ„์ „์„ ์ง€์ •ํ•˜์—ฌ ์‚ญ์ œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle delete BUNDLE_ID com.example.app

์˜ต์…˜:

ํŒŒ๋ผ๋ฏธํ„ฐํƒ€์ž…์„ค๋ช…
-astring๊ณ„์ •๊ณผ ์—ฐ๊ฒฐํ•  API ํ‚ค
โ€”supa-hoststring์ปค์Šคํ…€ Supabase ํ˜ธ์ŠคํŠธ URL (์…€ํ”„ ํ˜ธ์ŠคํŒ… ๋˜๋Š” Capgo ๊ฐœ๋ฐœ์šฉ)
โ€”supa-anonstring์ปค์Šคํ…€ Supabase anon key (์…€ํ”„ ํ˜ธ์ŠคํŒ…์šฉ)

Alias: l

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle list

๐Ÿ“‹ Capgo Cloud์— ์—…๋กœ๋“œ๋œ ์•ฑ์˜ ๋ชจ๋“  bundle ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

Example:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle list com.example.app

์˜ต์…˜:

ํŒŒ๋ผ๋ฏธํ„ฐํƒ€์ž…์„ค๋ช…
-astring๊ณ„์ • ์—ฐ๊ฒฐ์„ ์œ„ํ•œ API key
โ€”supa-hoststring์ปค์Šคํ…€ Supabase ํ˜ธ์ŠคํŠธ URL (์…€ํ”„ ํ˜ธ์ŠคํŒ… ๋˜๋Š” Capgo ๊ฐœ๋ฐœ์šฉ)
โ€”supa-anonstring์ปค์Šคํ…€ Supabase anon key (์…€ํ”„ ํ˜ธ์ŠคํŒ…์šฉ)

Alias: c

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle cleanup

๐Ÿงน ์ง€์ •๋œ ๊ฐœ์ˆ˜์˜ ์ตœ์‹  ๋ฒ„์ „๋งŒ ๋‚จ๊ธฐ๊ณ  Capgo Cloud์—์„œ ์˜ค๋ž˜๋œ bundle์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. โ€”ignore-channel ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•œ, channel์— ์—ฐ๊ฒฐ๋œ bundle์€ ๋ณด์กด๋ฉ๋‹ˆ๋‹ค.

Example:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle cleanup com.example.app --bundle=1.0 --keep=3

์˜ต์…˜:

ํŒŒ๋ผ๋ฏธํ„ฐํƒ€์ž…์„ค๋ช…
-bstring์‚ญ์ œํ•  ์•ฑ์˜ Bundle ๋ฒ„์ „ ๋ฒˆํ˜ธ
-astring๊ณ„์ • ์—ฐ๊ฒฐ์„ ์œ„ํ•œ API ํ‚ค
-kstring์œ ์ง€ํ•  ๋ฒ„์ „ ์ˆ˜
-fboolean๊ฐ•์ œ ์‚ญ์ œ
โ€”ignore-channelboolean์ฑ„๋„์— ์—ฐ๊ฒฐ๋œ Bundle๋„ ์‚ญ์ œ (์ฃผ์˜: ์ฑ„๋„๋„ ํ•จ๊ป˜ ์‚ญ์ œ๋จ)
โ€”supa-hoststring์‚ฌ์šฉ์ž ์ •์˜ Supabase ํ˜ธ์ŠคํŠธ URL (์…€ํ”„ ํ˜ธ์ŠคํŒ… ๋˜๋Š” Capgo ๊ฐœ๋ฐœ์šฉ)
โ€”supa-anonstring์‚ฌ์šฉ์ž ์ •์˜ Supabase anon key (์…€ํ”„ ํ˜ธ์ŠคํŒ…์šฉ)

๐Ÿ”’ ์•”ํ˜ธํ™”

โ€œ ๐Ÿ”’ Encryptโ€ ์„น์…˜
ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle encrypt

๐Ÿ”’ ์™ธ๋ถ€ ์ €์žฅ์†Œ์— ์•ˆ์ „ํ•˜๊ฒŒ ๋ณด๊ด€ํ•  zip bundle์„ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. upload/๋ณตํ˜ธํ™”์— ํ•„์š”ํ•œ ivSessionKey๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. checksum์€ โ€˜bundle zip โ€”jsonโ€™์œผ๋กœ ํ™•์ธํ•˜์„ธ์š”.

์˜ˆ์‹œ:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM

์˜ต์…˜:

ํŒŒ๋ผ๋ฏธํ„ฐํƒ€์ž…์„ค๋ช…
โ€”keystring๊ฐœ์ธ ์„œ๋ช… ํ‚ค์˜ ์‚ฌ์šฉ์ž ์ง€์ • ๊ฒฝ๋กœ
โ€”key-datastring๊ฐœ์ธ ์„œ๋ช… ํ‚ค
-jbooleanJSON ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ
โ€”package-jsonstring๋ชจ๋…ธ๋ ˆํฌ์šฉ package.json ํŒŒ์ผ ๊ฒฝ๋กœ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)

๐Ÿ”“ ๋ณตํ˜ธํ™”

โ€œ ๐Ÿ”“ Decryptโ€ ์„น์…˜
ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle decrypt

๐Ÿ”“ ์•”ํ˜ธํ™”๋œ ๋ฒˆ๋“ค์„ ๋ณตํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค (์ฃผ๋กœ ํ…Œ์ŠคํŠธ์šฉ). ๊ฒ€์ฆ์„ ์œ„ํ•ด base64 ์„ธ์…˜ ํ‚ค๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle decrypt ./myapp_encrypted.zip CHECKSUM

์˜ต์…˜:

ํŒŒ๋ผ๋ฏธํ„ฐํƒ€์ž…์„ค๋ช…
โ€”keystring๊ฐœ์ธ ์„œ๋ช… ํ‚ค์˜ ์‚ฌ์šฉ์ž ์ง€์ • ๊ฒฝ๋กœ
โ€”key-datastring๊ฐœ์ธ ์„œ๋ช… ํ‚ค
โ€”checksumstring๋ฒˆ๋“ค์˜ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์ฆ์„ ์œ„ํ•œ ๋ฒˆ๋“ค ์ฒดํฌ์„ฌ
โ€”package-jsonstring๋ชจ๋…ธ๋ ˆํฌ์šฉ package.json ํŒŒ์ผ ๊ฒฝ๋กœ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)
ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle zip

๐Ÿ—œ๏ธ ์•ฑ ๋ฒˆ๋“ค์„ zip ํŒŒ์ผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์•”ํ˜ธํ™”์— ์‚ฌ์šฉํ•  ์ฒดํฌ์„ฌ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๊ณ„ ํŒ๋… ๊ฐ€๋Šฅํ•œ ์ถœ๋ ฅ์„ ์›ํ•˜๋ฉด --json์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

์˜ˆ์‹œ:

ํ„ฐ๋ฏธ๋„ ์ฐฝ
npx @capgo/cli@latest bundle zip com.example.app --path ./dist

์˜ต์…˜:

ํŒŒ๋ผ๋ฏธํ„ฐํƒ€์ž…์„ค๋ช…
-pstring์—…๋กœ๋“œํ•  ํด๋” ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด capacitor.config์— ์„ค์ •๋œ webDir์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
-bstringzip ํŒŒ์ผ ์ด๋ฆ„์— ์‚ฌ์šฉํ•  ๋ฒˆ๋“ค ๋ฒ„์ „ ๋ฒˆํ˜ธ
-nstringzip ํŒŒ์ผ ์ด๋ฆ„
-jbooleanJSON ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅ
โ€”no-code-checkboolean์†Œ์Šค code ๋‚ด notifyAppReady() ํ˜ธ์ถœ ์—ฌ๋ถ€ ๋ฐ ๋ฃจํŠธ ํด๋”์˜ index ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ์„ ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค
โ€”key-v2booleanv2 ์•”ํ˜ธํ™” ์‚ฌ์šฉ
โ€”package-jsonstring๋ชจ๋…ธ๋ ˆํฌ์šฉ package.json ํŒŒ์ผ ๊ฒฝ๋กœ (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„)