> ## Documentation Index
> Fetch the complete documentation index at: https://docs.asccli.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

# Changelog

> Release history and changes for the App Store Connect CLI

## Release Information

The App Store Connect CLI follows semantic versioning. All releases are available on GitHub:

[https://github.com/rorkai/App-Store-Connect-CLI/releases](https://github.com/rorkai/App-Store-Connect-CLI/releases)

## Latest Releases

### Unreleased

No unreleased changes yet.

### 1.2.2

**Highlights**:

* `asc app-clips invocations create` now supports inline localization creation with explicit `--locale` and `--title` flags, fixing the broken beta App Clip invocation flow that previously failed against the App Store Connect API
* Regression coverage expands again for fastlane migrate flows and submission lookup edge cases, reducing the chance of silent breakage in tricky automation paths
* The Wall of Apps and community surfaces pick up Newgrain: Film Photo Community, AI Chat Assistant - Chappie, Shluffy - A Baby Sleep Coach, Dateminder - Event Reminders, and Splitie - Split & Settle Bills

**Changes**:

* `fix(app-clips)`: Add inline localization support for beta App Clip invocation creation and validate the required localization inputs before sending the request
* `test(migrate)`: Cover the fastlane Deliverfile `skip_screenshots` path more aggressively
* `test(submit)`: Add regression coverage for submission lookup not-found and empty version ID branches
* `build(community)`: Refresh the installs badge and add Newgrain: Film Photo Community, AI Chat Assistant - Chappie, Shluffy - A Baby Sleep Coach, Dateminder - Event Reminders, and Splitie - Split & Settle Bills to the Wall of Apps

### 1.2.1

**Highlights**:

* `asc migrate import` is more resilient with fastlane screenshot directories: hidden junk like `.DS_Store` is skipped, empty locale folders no longer abort metadata imports, and metadata-only runs can explicitly use `--skip-screenshots`
* Fastlane `snapshot` output works better out of the box for modern device-name-prefixed screenshots, including the 13-inch iPad Pro family
* Submission regression coverage and the Wall of Apps continue to grow with Terraforge: Alchemy Craft Game, SiteCalc: Trades Calculator, and Moda: Driving Permit Hours Log

**Changes**:

* `fix(migrate)`: Skip unsupported screenshot files, allow empty screenshot locale directories, and add `--skip-screenshots` for metadata-only fastlane imports
* `fix(migrate)`: Apply screenshot skipping during path resolution so metadata-only fastlane layouts without a `screenshots/` directory still import cleanly
* `test(submit)`: Cover build attachment and existing submission lookup branches more aggressively
* `build(community)`: Refresh the installs badge and add Terraforge: Alchemy Craft Game, SiteCalc: Trades Calculator, and Moda: Driving Permit Hours Log to the Wall of Apps

### 1.2.0

**Highlights**:

* `asc review submit` is now the fast, canonical shortcut for attaching a build and sending a prepared App Store version through the modern review submission flow
* App Store submission reruns are more reliable across `review submit` and `publish appstore --submit`, with earlier already-submitted detection and clearer preflight remediation
* Release workflow regressions are covered more aggressively, and the Wall of Apps adds Voice Reminder Planner: Echo, Shua - arXiv Paper Reader, Nitra, Time Blocking Planner: Align, and SquishPic: Image Compressor

**Changes**:

* `feat(review)`: Add `asc review submit` as the modern high-level review submission command
* `fix(review)`: Short-circuit already-submitted versions before preflight and build-attachment work for safer reruns
* `fix(publish)`: Make `publish appstore --submit` reruns return cleanly when a version is already submitted
* `fix(submit)`: Use caller-specific preflight guidance and avoid redundant existing-submission lookups in shared submit flows
* `fix(auth)`: Correct doctor migration guidance order for the `review submit` workflow
* `test(cmdtest)`: Add regression coverage for review submit, publish submit reruns, screenshot resume mode conflicts, and validate subscription parsing edge cases
* `build(community)`: Refresh the installs badge and add Voice Reminder Planner: Echo, Shua - arXiv Paper Reader, Nitra, Time Blocking Planner: Align, and SquishPic: Image Compressor to the Wall of Apps

### 1.1.1

**Highlights**:

* Metadata keyword validation now counts characters instead of UTF-8 bytes, fixing false failures for Arabic, Japanese, and other non-English scripts
* Screenshot upload helper regressions are covered by focused shared-flow tests so screenshot-set upload behavior is less likely to break silently
* The Wall of Apps adds Imposter Game: Fakeout Party, QontactR, RateTier, and SweatCount - Workout Calendar

**Changes**:

* `fix(metadata)`: Validate metadata and localization keywords by characters across shared keyword validation flows
* `test(assets)`: Add regression coverage for the shared screenshot set upload helper
* `build(community)`: Add Imposter Game: Fakeout Party, QontactR, RateTier, and SweatCount - Workout Calendar to the Wall of Apps

### 1.1.0

**Highlights**:

* Screenshot automation is much stronger with localization fan-out uploads, resumable artifact flows, and preflight validation before large screenshot runs
* Metadata and localization workflows are easier to audit and scale with keyword audit tooling, bulk localization apply support, supported-locale discovery, and byte-aware keyword validation
* App Store release workflows are more reliable with publish dry-run planning, validate remediation guidance, tougher review-state handling, and broader territory normalization across pricing surfaces

**Changes**:

* `feat(screenshots)`: Add screenshot upload fan-out, resumable upload artifacts, and screenshot validate preflight coverage
* `feat(metadata)`: Add metadata keywords audit, tighten keyword push validation, and preserve partial-apply diagnostics
* `feat(localizations)`: Add bulk localizations apply, supported-locale discovery, and stronger locale/create warning handling
* `feat(validate)`: Add remediation guidance and stricter validate/reporting coverage for release readiness flows
* `feat(publish)`: Add dry-run planning for `publish appstore` and relax dry-run auth preflight requirements
* `fix(pricing)`: Retry price equalization updates after rate limiting and normalize territory inputs consistently across pricing commands
* `fix(reviews)`: Preserve unknown review lookup errors and tighten stale submission handling

### 1.0.1

**Highlights**:

* Metadata and localization write failures now surface the attempted field names alongside Apple's generic `(-50)` errors, making App Store Connect rejections much easier to debug
* Review screenshot create coverage now catches failed delivery verification for both in-app purchases and subscription groups before regressions can slip into release CI
* The Wall of Apps and install badge pick up the latest community refresh with DeskTally and HoverCalc

**Changes**:

* `fix(metadata)`: Include attempted metadata field names in generic App Store Connect write failures
* `fix(localizations)`: Preserve whitespace-only attempted-field context so localization update diagnostics match the outgoing request
* `test(cmdtest)`: Add failed delivery verification coverage for IAP and subscription review screenshot create commands
* `build(community)`: Refresh the installs badge and add DeskTally and HoverCalc to the Wall of Apps

### 1.0.0

**Highlights**:

* App Store Connect CLI 1.0 removes deprecated commands and aliases across the CLI so the canonical command tree is the only supported surface
* Runtime migration guidance now points removed compatibility paths to their 1.0 replacements, including publishing, release, submit, age-rating, and build flows
* The Mintlify docs now include a dedicated migration guide and refreshed command pages for the 1.0 command taxonomy

**Changes**:

* `feat(cli)`: Remove deprecated commands, aliases, and compatibility wrappers for the 1.0 release
* `feat(cli)`: Standardize canonical `view` and `edit` command surfaces and keep removed-path migration guidance for key workflows
* `docs`: Add a dedicated migrate-to-1.0 guide and refresh command docs to match the 1.0 CLI
* `test(cli)`: Update command-surface coverage and runtime migration tests for removed commands and aliases

### 0.49.1

**Highlights**:

* ASC Studio is more reliable after fixing app-selection, refresh, and sheet timing races
* The website/docs are more stable with repaired command-reference coverage and Mintlify scroll behavior
* App tags and release workflows are documented more clearly, and the Wall of Apps picks up new showcase entries

**Changes**:

* `fix(studio)`: Resolve app-selection, refresh, and sheet race conditions in ASC Studio
* `docs`: Refresh stale command reference pages and add release, status, release-notes, screenshots plan/apply, and app-tags coverage
* `fix(docs)`: Prevent Studio CSS from breaking Mintlify scrolling and repair main-branch docs CI gaps
* `docs`: Clarify Apple-generated app-tag discoverability surfaces in CLI help and website docs
* `build(branding)`: Rename the product surfaces to App Store Connect CLI and ASC Studio
* `feat(apps-wall)`: Add Daily Self Care - Anicca, Tintz: Color Picker, Blimber - Student Planner, Telescopo: Markdown & Diagrams, and iCardSort

### 0.49.0

**Highlights**:

* `asc publish appstore` is now the canonical App Store shipping command with clearer upgrade guidance from the older release and submit compatibility paths
* Local-build publishing can now upload an IPA through App Store Connect directly and carry that build through the App Store release flow from the CLI
* Review, screenshots, IAPs, and subscriptions are easier to automate with additive planning commands and stable selector resolution

**Changes**:

* `feat(publish)`: Add local-build publish mode with App Store Connect API uploads
* `feat(publish)`: Make `asc publish appstore` the canonical App Store publish path and simplify deprecated publishing guidance
* `feat(reviews)`: Split additive review metadata and screenshot planning workflows into clearer command surfaces
* `feat(selectors)`: Add stable selector resolution for in-app purchases and subscriptions
* `fix(validate)`: Refresh validate-subscriptions request contexts more eagerly to avoid timeout-related flakes

### 0.48.1

**Highlights**:

* Product page optimization treatment localizations now support screenshot-set upload and sync commands
* Windows private key permission checks are fixed for more reliable auth/setup workflows
* Release guardrails are more stable after tightening a flaky mutating-request timeout test

**Changes**:

* `feat(product-pages)`: Add product page optimization treatment localization screenshot-set upload and sync commands
* `fix(windows)`: Correct private key permission checks on Windows
* `test(release)`: Stabilize the mutating request timeout refresh assertion used by release CI

### 0.48.0

**Highlights**:

* `asc validate` is now the canonical App Store submission readiness report with broader checks and clearer upgrade guidance from the legacy preflight compatibility command
* Pricing workflows are easier to inspect with `asc pricing current` and more reliable current-price pagination/filtering
* Subscription introductory offers can now be created in bulk from CSV with shared defaults and row-level overrides

**Changes**:

* `feat(validate)`: Make `asc validate` the canonical App Store submission readiness command and deprecate the legacy preflight compatibility wrapper
* `feat(pricing)`: Add `asc pricing current` for current app price lookup with territory filtering
* `fix(pricing)`: Preserve pricing query params while paginating and tighten current-price territory behavior
* `feat(subscriptions)`: Add CSV import for subscription introductory offers with inherited defaults, row overrides, dry-run summaries, and stronger validation
* `feat(web)`: Add a false-only regulated medical-device declaration command for experimental web-session workflows
* `fix(output)`: Display human-readable platform names in table and markdown output
* `fix(testflight)`: Reject conflicting `--group` and `--build-id` beta tester selectors consistently
* `fix(game-center)`: Handle missing Game Center detail lists without crashing
* `fix(subscriptions)`: Improve subscription import preflight validation

### 0.47.1

**Highlights**:

* Improved high-level release and submission workflow reliability
* Better status/watch behavior and review submission summaries
* Expanded docs, release guardrails, and CI hardening for the new website split

**Changes**:

* `feat(release)`: Split shared release submission behavior across release, publish, submit, and status flows
* `fix(status)`: Preserve watch timeout semantics while treating clean watch deadlines as expected exits
* `fix(status)`: Summarize review submissions per platform and keep bounded watch polling consistent
* `fix(submit)`: Preserve shared flow reuse semantics and surface preparation messaging more clearly
* `fix(publish)`: Honor explicit submit timeout budgets while preserving default pipeline timeouts
* `build(ci)`: Split CI, hook, and release hardening for docs-aware checks
* `docs`: Split help taxonomy and recover Mintlify website content and workflows

### v0.36.3

**Highlights**:

* Fixed PKG upload UTI to use `com.apple.pkg`
* Added subcategory flags to categories set command
* Enhanced app-info locale validation and metadata copying

**Changes**:

* `fix(builds)`: Use `com.apple.pkg` for PKG upload UTI
* `feat(categories)`: Add subcategory flags to categories set command
* `fix(app-info)`: Preserve target fields when copying locale metadata
* `refactor(app-info)`: Reuse localization attribute builder
* `refactor(submit)`: Simplify readiness missing-field allocation

### v0.36.2

**Highlights**:

* Improved metadata push workflow with state-aware version resolution
* Fixed build pagination anomaly detection

**Changes**:

* `refactor(metadata)`: Include state in shared version resolution
* `fix(builds)`: Detect repeated probe links before early-stop path
* `fix(builds)`: Use strict uploadedDate for anomaly detection

### v0.36.1

**Highlights**:

* Enhanced build processing reliability
* Fixed pagination edge cases

**Changes**:

* `fix(builds)`: Error when anomaly scan hits page cap
* `fix(builds)`: Fail on repeated probe pagination URLs
* `fix(builds)`: Continue scanning after ordering anomaly detection
* `fix(builds)`: Propagate context cancellation during probe pages

### v0.36.0

**Highlights**:

* Major build processing improvements
* Performance optimizations for large build lists

**Changes**:

* `fix(builds)`: Preserve latest response links and sync docs defaults
* `fix(builds)`: Keep latest result when probe page fetch fails
* `fix(builds)`: Avoid exhaustive latest-build pagination scans
* `fix(builds)`: Compare uploadedDate by parsed time across pre-release versions

### v0.35.3

**Highlights**:

* CLI consistency improvements
* Enhanced app events validation

**Changes**:

* `fix(auth)`: Respect global default output for auth status
* `refactor(cli)`: Standardize usage errors and pagination loops
* `fix(app-events)`: Align purchase requirement messaging with supported values
* `fix(app-events)`: Normalize purchase requirement and guard unsupported values

### v0.35.2

**Highlights**:

* Subscription pricing fixes

**Changes**:

* `fix(subscriptions)`: Honor initial-price attributes and fail on probe errors

## Previous Releases

For a complete release history, see:

* **GitHub Releases**: [https://github.com/rorkai/App-Store-Connect-CLI/releases](https://github.com/rorkai/App-Store-Connect-CLI/releases)
* **Git Tags**: [https://github.com/rorkai/App-Store-Connect-CLI/tags](https://github.com/rorkai/App-Store-Connect-CLI/tags)

## Viewing Releases

### Via GitHub

View all releases with detailed release notes:

```bash theme={null} theme={null}
open https://github.com/rorkai/App-Store-Connect-CLI/releases
```

### Via Git

List recent tags:

```bash theme={null} theme={null}
git tag --sort=-v:refname | head -10
```

View changes between releases:

```bash theme={null} theme={null}
git log v0.36.2..v0.36.3 --oneline
```

### Via CLI

Check your current version:

```bash theme={null} theme={null}
asc version
```

## Upgrading

### Homebrew

If installed via Homebrew:

```bash theme={null} theme={null}
brew upgrade asc
```

### Install Script

If installed via install script, re-run:

```bash theme={null} theme={null}
curl -fsSL https://asccli.sh/install | bash
```

### From Source

Pull latest changes and rebuild:

```bash theme={null} theme={null}
git pull origin main
make build
```

## Versioning Policy

The CLI follows [Semantic Versioning](https://semver.org/):

* **Major version** (x.0.0): Breaking changes, incompatible API updates
* **Minor version** (0.x.0): New features, backward-compatible additions
* **Patch version** (0.0.x): Bug fixes, backward-compatible improvements

## Deprecation Policy

When features are deprecated:

1. **Warning added**: Command/flag shows deprecation notice
2. **Migration path provided**: Documentation updated with alternatives
3. **Grace period**: Feature remains available for at least one minor version
4. **Removal**: Deprecated feature removed in next major version

## Breaking Changes

Breaking changes are documented in release notes and migration guides. Check release notes before upgrading major versions.

## Release Channels

### Stable

Recommended for production use. Install via Homebrew or install script.

```bash theme={null} theme={null}
brew install asc
```

### Main Branch

Latest development version. May include unreleased features and fixes.

```bash theme={null} theme={null}
git clone https://github.com/rorkai/App-Store-Connect-CLI.git
cd App-Store-Connect-CLI
make build
```

**Note**: Main branch is tested but may have unreleased changes. Use stable releases for production.

## Changelog Format

Release notes follow this structure:

```
## [Version] - YYYY-MM-DD

### Added
- New features

### Changed
- Changes to existing functionality

### Deprecated
- Soon-to-be removed features

### Removed
- Removed features

### Fixed
- Bug fixes

### Security
- Security improvements
```

## Commit Message Conventions

Commits follow [Conventional Commits](https://www.conventionalcommits.org/):

* `feat:` - New feature
* `fix:` - Bug fix
* `refactor:` - Code refactoring
* `test:` - Test additions/changes
* `docs:` - Documentation changes
* `chore:` - Maintenance tasks
* `perf:` - Performance improvements

**Example**:

```
feat(builds): add PKG upload support

fix(auth): respect global default output

refactor(cli): standardize pagination loops
```

## Notable Changes by Category

### Authentication

* JWT token auto-renewal (all versions)
* Keychain bypass mode (`ASC_BYPASS_KEYCHAIN`)
* Strict auth mode for conflict detection (`ASC_STRICT_AUTH`)
* Base64 key support for CI/CD

### Builds & Uploads

* PKG upload UTI fix (v0.36.3)
* Build pagination improvements (v0.36.x)
* Upload timeout configuration
* Progress tracking for large files

### API Integration

* Automatic retry logic for rate limits
* Retry-After header support
* Configurable timeouts and delays
* Debug mode for HTTP logging (`ASC_DEBUG=api`)

### Output & Formatting

* TTY-aware output defaults
* JSON, table, and markdown formats
* Global output preference (`ASC_DEFAULT_OUTPUT`)
* Pretty-print option for JSON

### Testing & Development

* Keychain bypass for tests
* Integration test opt-in
* Pre-commit hooks
* Command doc generation

## Reporting Issues

Found a bug or regression? Report it:

* **GitHub Issues**: [https://github.com/rorkai/App-Store-Connect-CLI/issues](https://github.com/rorkai/App-Store-Connect-CLI/issues)
* **Security Issues**: [https://github.com/rorkai/App-Store-Connect-CLI/security/advisories/new](https://github.com/rorkai/App-Store-Connect-CLI/security/advisories/new) (private reporting)

Include:

* CLI version (`asc version`)
* Platform and architecture
* Command run (sanitize sensitive data)
* Expected vs actual behavior
* Full error output (use `ASC_DEBUG=api` for details)

## Stay Updated

### Watch Releases

Watch the repository for release notifications:

1. Go to [https://github.com/rorkai/App-Store-Connect-CLI](https://github.com/rorkai/App-Store-Connect-CLI)
2. Click "Watch" → "Custom" → "Releases"

### RSS Feed

Subscribe to releases via RSS:

```
https://github.com/rorkai/App-Store-Connect-CLI/releases.atom
```

### Star History

View project growth:

[![Star History Chart](https://api.star-history.com/svg?repos=rorkai/App-Store-Connect-CLI\&type=Date)](https://star-history.com/#rorkai/App-Store-Connect-CLI\&Date)

## Contributing

Contributions are welcome! See the [Contributing Guide](/resources/contributing) for details on:

* Development setup
* Testing requirements
* PR guidelines
* Local validation

All changes are documented in release notes and git history.
