ワンクリックで
compare-bundles
// Compares two app bundles to identify size changes, new or removed artifacts, and platform differences. Can be invoked with bundle IDs, dashboard URLs, or branch names.
// Compares two app bundles to identify size changes, new or removed artifacts, and platform differences. Can be invoked with bundle IDs, dashboard URLs, or branch names.
Project-specific PR-review rules for the tuist/tuist Elixir codebases (server, cache, processor, xcode_processor, tuist_common, noora). Focuses on the things only this repo knows — authorization invariants, tenancy, write-only ClickHouse, Mimic placement, migration timestamptz, data-export updates, marketing changelog entries, and i18n.
Project-specific PR-review rules for the tuist/tuist Swift codebase (cli). Focuses on the things only this repo knows — preferring value types, the testing framework choice, and migration of XCTest to Swift Testing.
Guides day-to-day work in Tuist-generated Xcode workspaces, including generation, build and test commands, and buildable folders. Use when working in a Tuist-generated project or when users mention `tuist generate`, `xcodebuild test`, or generated workspaces.
Migrates existing Xcode projects to Tuist generated workspaces with build and run validation, external dependency mapping, and migration checklists. Use when adopting Tuist for an existing app or converting a hand-edited Xcode project to generated projects.
Analyzes Xcode selective testing effectiveness for a test run, showing which test targets were skipped or ran, and diagnosing regressions in test selection. Can compare two test runs to identify what changed.
Compares two Gradle build runs to identify duration regressions, cache changes, and task outcome differences. Can be invoked with build IDs, dashboard URLs, or branch names.
| name | compare-bundles |
| description | Compares two app bundles to identify size changes, new or removed artifacts, and platform differences. Can be invoked with bundle IDs, dashboard URLs, or branch names. |
You'll typically receive two bundle identifiers. Follow these steps:
tuist bundle list --json to find bundles on each branch.tuist bundle show <bundle-id> --json for both base and head bundles.tuist bundle artifact list <bundle-id> --json.Fetch each directly:
tuist bundle show <base-id> --json
tuist bundle show <head-id> --json
List recent bundles on each branch and pick the latest:
tuist bundle list --git-branch <base-branch> --json
tuist bundle list --git-branch <head-branch> --json
Then fetch full details with tuist bundle show <id> --json.
main).After fetching both bundles with tuist bundle show <id> --json, compare the individual artifacts:
tuist bundle artifact list <base-id> --json
tuist bundle artifact list <head-id> --json
Match artifacts by name across both bundles. Look for:
After fetching both bundles, compare:
| Metric | What to check |
|---|---|
install_size | Flag if head is >5% larger |
download_size | Flag if head is >5% larger |
version | Note version changes |
supported_platforms | Note platform changes |
app_bundle_id | Should match between base and head |
Compute deltas:
head_install_size - base_install_sizehead_download_size - base_download_sizedelta / base_size * 100If size increased significantly (>5%):
version changed, which might explain expected size growth.supported_platforms changed (adding a platform increases size).artifacts field in the bundle details for individual artifact sizes.Common causes of size increases:
Common causes of size decreases:
Produce a summary with:
Example:
Bundle Comparison: base (v2.1.0 on main) vs head (v2.2.0 on feature-x)
Install Size: 45.2 MB -> 52.8 MB (+16.8%) -- REGRESSION
Download Size: 28.1 MB -> 32.4 MB (+15.3%) -- REGRESSION
Version: 2.1.0 -> 2.2.0
Platforms: iOS, macOS (unchanged)
The install size increased by 7.6 MB. This is a significant increase
that may affect user download and storage experience.
Recommendations:
- Review new frameworks or assets added in this version
- Check for uncompressed resources or oversized image assets
- Consider using asset compression or on-demand resources
- Run `xcrun bitcode_strip` analysis to check for unnecessary bitcode
tuist bundle artifact list