Releases: appcircleio/appcircle-cli
v2.7.8
Release Notes for v2.7.8
Based on v2.7.7
💪 Improvements
Simplified Release Notes Handling for Testing Distribution
- Release notes (
--messageparameter) are now sent directly to the API during upload commit - Removed complex release notes update logic that required waiting for task completion and version ID retrieval
- Improved upload performance and reliability
# Release notes are now sent directly during upload
appcircle testing-distribution upload --distProfileId <uuid> --app <path> --message "Release notes"Consistent Release Notes Support Across All Upload Commands
- Added
--messageparameter support to Enterprise App Store upload commands - Added
--messageparameter support to Publish upload command
# Enterprise App Store with release notes
appcircle enterprise-app-store version upload-for-profile --entProfileId <uuid> --app <path> --message "Bug fixes"
# Publish with release notes
appcircle publish profile version upload --platform ios --publishProfileId <uuid> --app <path> --message "Bug fixes"v2.7.7
Release Notes for v2.7.7
Based on v2.7.6
💪 Improvements
Testing Distribution: Enhanced Release Notes Input Experience
- Improved the user experience when entering multi-line release notes in interactive mode
- Added clear on-screen guidance specific to Testing Distribution workflows
- Users are now informed to leave two blank lines to complete the input
# In interactive mode, when entering release notes:
? Release Notes
(Leave two blank lines to finish)Better Error Messages for Missing Parameters
- Upload Commands: More descriptive error messages when required
--appparameter is missing - Error messages now clearly indicate which parameter is required and provide helpful context
- Prevents cryptic
TypeErrormessages and guides users to provide the correct parameters
# ❌ Before: TypeError: Cannot read properties of undefined
# ✅ The --app parameter is required. Please provide the path to your app file (.ipa for iOS, .apk/.aab for Android). (exit code: 1)🐛 Bug Fixes
AAB File Release Notes Update
- Testing Distribution: Fixed issue where
--messageparameter did not update release notes for AAB files - Release notes now correctly update for both APK and AAB file uploads
# Now works correctly for both APK and AAB files:
appcircle testing-distribution upload --distProfileId xxx --app ./app.aab --message "Release notes"
appcircle testing-distribution upload --distProfileId xxx --app ./app.apk --message "Release notes"v2.7.6
Release Notes for v2.7.6
Based on v2.7.5
🆕 New Features
Commit Hash Support for Build View
The build view command now accepts --commitHash parameter to view build details by commit hash instead of build ID.
appcircle build view --profileId xxx --commitHash abc123def💪 Improvements
API Authorization and Error Messages
- API Authorization Errors: Clearer permission-denied messages with actionable guidance
- Error Message Structure: Numbered reasons for incompatibility errors for easier troubleshooting
Enhanced Parameter Validation for Build Start Command
--monitorflag now requires a valid value (none,summary,steps, orverbose)- Incompatible parameter combinations are now detected and prevented with clear error messages
--no-waitcannot be used with monitoring modes- Download options (
--download-artifacts,--download-logs) cannot be used with--no-waitor--monitor none
🐛 Bug Fixes
- Build Start with --no-wait: No longer shows misleading "Failed to start build" message when build is successfully queued
- Tilde Path Expansion: Paths like
~/Desktop/now correctly expand to user's home directory instead of creating literal folders - Certificate Upload:
--passwordparameter is now optional for certificates without password protection - Build Failure Exit Code: CLI now exits with code 1 when monitored builds fail (previously exited with code 0)
ℹ️ Breaking Changes
- Invalid parameter combinations now result in errors instead of warnings
- The
--monitorflag requires a valid value when specified
Migration examples:
# ❌ No longer works
appcircle build start --profileId xxx --no-wait --download-artifacts
appcircle build start --profileId xxx --monitor
# ✅ Correct usage
appcircle build start --profileId xxx --download-artifacts
appcircle build start --profileId xxx --monitor summaryv2.7.5
Release Notes for v2.7.5
Based on v2.7.4
🆕 New Features
Monitor Mode Selection
A new --monitor flag has been introduced to control how build progress is displayed. Available options:
none: No monitoring. Just return Task/Build ID and exit immediately.summary(default): Wait until completion, show final status + total duration in one line.steps: Wait until completion, show step-by-step progress (started/finished) minimally.verbose: Wait until completion, stream detailed logs line by line in real time.
💪 Improvements
- Unit Tests with Vite/Vitest: Added unit tests across core modules to boost reliability and guard against regressions.
- Refactors for Testability: Restructured selected code paths (no functional changes) to make modules more modular and easier to test.
- Authentication Command Update (Backward Compatible):
- New preferred syntax:
appcircle login personal-access-key --secret="<SECRET>" - Legacy syntax (still supported, deprecated):
appcircle login pat --token="<TOKEN>" - The legacy form continues to work and is mapped internally to the new command. A deprecation notice is shown to encourage migration. No breaking changes introduced.
- New preferred syntax:
🐛 Bug Fixes
- Testing Distribution: Fixed an issue where release notes were not updated after upload. Post-upload release note updates now persist correctly.
v2.7.4
Release Notes for v2.7.4
Based on v2.7.3
💪 Improvements
- Reliability Improvements:
- Upload Retry Policy: Implemented an automatic retry mechanism with exponential backoff for file uploads to Google Cloud Storage. This ensures more reliable artifact delivery by handling transient 503 Service Unavailable responses gracefully.
- Resilience to Network Fluctuations: Temporary network or service disruptions during upload will now trigger retries instead of immediate failure, reducing the likelihood of failed build artifact uploads.
v2.7.3
Release Notes for v2.7.3
Based on v2.7.2
🆕 New Features
- Authentication System:
- Login with API Key: Added API key login.
- Local Logout Optimization: Refactored logout functionality to clear authentication tokens locally without making unnecessary API calls, improving performance and reliability.
💪 Improvements
-
User Experience Improvements:
- Login Protection: Added automatic detection for already logged-in users. When attempting to login while already authenticated, users now receive a clear "You are already logged in" message, preventing duplicate authentication attempts.
- Interactive Mode Authentication Grouping: Login and Logout options are now grouped under a unified "Authentication (Login/Logout)" menu in interactive mode for better organization.
-
Command Structure Improvements:
- PAT Login Command Update: Changed Personal Access Token login command from
appcircle login --pat...toappcircle login pat --token...for better command structure and clarity.
- PAT Login Command Update: Changed Personal Access Token login command from
v2.7.2
Based on v2.7.1
Features
-
Automatic Download Options in Build Start:
Previously, download options and paths were only prompted after the build was completed. With this update, users can now configure these options before the build starts using the following flags:
--download-artifacts: Automatically download build artifacts after the build completes.--download-logs: Automatically download build logs after the build completes.--path: Specify a custom download directory for better file organization.
These options streamline the post-build experience and allow full control over output management without manual prompts.
Fixes
-
Interactive Mode Improvements:
- Fixed issue where interactive mode would display help text instead of proper error messages when no builds, commits, or branches were found.
- Interactive mode now shows context-specific error messages and gracefully handles empty API responses.
- Removed duplicate success messages during build log downloads for cleaner output.
-
Path and File Handling:
- Fixed issue where branch names containing forward slashes (e.g.,
feature/publish,refactor/cleanup) would be incorrectly interpreted as file paths - Added comprehensive directory existence checks to prevent
ENOENTerrors during downloads - Implemented cross-platform file name sanitization for unsafe characters (
/,\,<,>,:,",|,?,*)
- Fixed issue where branch names containing forward slashes (e.g.,
-
Error Message Clarity:
- Enhanced download path validation with automatic directory creation and user-friendly error messages.
- Enhanced error messages to clearly distinguish between build failures and download issues.
Enhancements
- Smart User Feedback:
- Added positive feedback when directories are successfully created
- Provides clear guidance and examples when paths are invalid or permissions are insufficient.
- Shows detailed file paths in success messages for better traceability.
Documentation
- Improved Command Examples:
The documentation for the build start command has been updated with additional explanations and usage details for available options.
v2.7.1
v2.7.0
Based on v2.6.0
Improvements
-
Alternative String Parameters for All Modules:
All CLI modules now support using human-readable names as alternatives to UUIDs, making commands more intuitive and user-friendly. The following parameters now support both UUID and string name alternatives across all applicable commands:--profileId/--profile(Build profiles)--branchId/--branch(Build branches)--configurationId/--configuration(Build configurations)--workflowId/--workflow(Build workflows)--certificateId/--certificate(iOS certificates)--keystoreId/--keystore(Android keystores)--provisioningProfileId/--provisioningProfile(iOS provisioning profiles)--testingGroupIds/--testingGroups--distProfileId/--distProfile--entProfileId/--entProfile--entVersionId/--entVersion--organizationId/--organization--userId/--user--publishProfileId/--publishProfile
Build Module:
# Instead of UUID: --profileId "123456-789a-bcde-f012-345678901234" appcircle build start --profile "My iOS Project" --branch "main" --workflow "Default Push Workflow" # Instead of UUID: --branchId "123456-789a-bcde-f012-345678901234" appcircle build profile branch commits --profile "My iOS Project" --branch "develop" # Instead of UUID: --workflowId "123456-789a-bcde-f012-345678901234" appcircle build start --profile "My iOS Project" --branch "develop" --workflow "Default Push Workflow" # Instead of UUID: --configurationId "123456-789a-bcde-f012-345678901234" appcircle build start --profile "My iOS Project" --branch "develop" --workflow "Default Push Workflow" --configuration "Default Configuration"
Signing Identity:
# Instead of UUID: --certificateId "123456-789a-bcde-f012-345678901234" appcircle signing-identity certificate view --certificate "My Certificate" # Instead of UUID: --keystoreId "123456-789a-bcde-f012-345678901234" appcircle signing-identity keystore view --keystore "My Keystore" # Instead of UUID: --provisioningProfileId "123456-789a-bcde-f012-345678901234" appcircle signing-identity provisioning-profile view --provisioningProfile "My Provisioning Profile"
Testing Distribution:
# Instead of UUID: --testingGroupIds "123456-789a-bcde-f012-345678901234" appcircle testing-distribution profile settings auto-send --testingGroups "My Testers,QA Team" # Instead of UUID: --distProfileId "123456-789a-bcde-f012-345678901234" appcircle testing-distribution upload --distProfile "DistributionProfile"
Publish Module:
# Instead of UUID: --publishProfileId "123456-789a-bcde-f012-345678901234" appcircle publish profile view --publishProfile "My Profile"
Enterprise App Store:
# Instead of UUID: --entProfileId "123456-789a-bcde-f012-345678901234" appcircle enterprise-app-store version publish --entProfile "MyApp (Android)" # Instead of UUID: --entVersionId "123456-789a-bcde-f012-345678901234" appcircle enterprise-app-store version publish --entProfile "MyApp (Android)" --entVersion "1.0.14" summary "June Release" --releaseNotes "Updates for June" --publishType 2
Organization Management:
# Instead of UUID: --organizationId "123456-789a-bcde-f012-345678901234" appcircle organization view --organization "My Organization" # Instead of UUID: --userId "123456-789a-bcde-f012-345678901234" organization role view --organization 'My Organization' --user "user@example.com"
-
Enhanced Boolean Parameter Handling:
String boolean values are now automatically converted to proper boolean types for API compatibility.
Fixes
-
JSON Output Format:
Fixed-o jsonoutput format that was not working correctly after the 2.6.0 update. JSON responses now maintain proper structure and formatting. -
Build and Publish Start with JSON Output:
When starting a build with-o jsonformat, the download step is now automatically skipped to prevent interference with JSON output formatting.
Documentation
-
Updated Command Examples:
All documentation now includes examples using both UUID and string name parameters for better user guidance. -
Parameter Reference Updates:
Help documentation updated to clearly show alternative parameter options and usage examples.
v2.6.0
Based on v2.5.0
Features
-
Latest Commit Highlight:
When listing commit history, the latest commit now includes a (latest) label for quick identification.
This enhancement has also been applied to Workflow and Configuration listings to ensure consistent labeling across all modules. -
Interactive Mode Separator:
In interactive mode, a visual separator is added when the main menu is displayed again, clearly separating the previous command output from the menu. -
Selected Command Display:
When a user selects a command, the selected option (e.g.,1. Start a new build) is explicitly displayed on the screen instead of the raw command name. -
Build Duration Display:
Once a build is started, the elapsed time is shown alongside the ongoing build status to provide real-time progress insight. -
Interactive Navigation (Back Support):
A new Back feature is introduced in interactive mode, allowing users to navigate between nested menus and return to previous options easily. -
Automatic Return to Main Menu:
After completing an action in interactive mode, users are now redirected to the Main Menu automatically for a smoother experience.
Improvements
-
Simplified Listing Output:
Informative footers like "(6 Options)" have been removed from numbered lists for a cleaner interface and are now added to paginated lists where appropriate. -
Help Output Refinement:
The CLI version is now shown clearly at the end of the help section or directly under the CLI ASCII logo.
Formatting improvements were made to help command output for better readability. -
Command Flag Enforcement:
When users attempt to run an incomplete command (e.g.,appcircle build startwithout required flags), the CLI now detects the missing parameters and displays the relevant options to guide proper usage.
Fixes
- Capitalization Standards:
CLI output now ensures that all special terms are capitalized (e.g., Build, Publish) except when used as verbs. This improves consistency in messaging.
Safeguards
- Deletion Confirmation Step:
All delete operations now include an additional confirmation prompt to prevent accidental removals and improve safety in critical workflows.