Skip to content

Releases: tddworks/asc-cli

asc v0.1.34

02 Mar 12:16

Choose a tag to compare

Fixed

  • asc app-shots translate — no longer regenerates the visual design (background, colors, device mockup, layout) from the original plan specs; now sends a simple "edit this image, translate only the text overlays" prompt so the existing generated screenshot is preserved exactly

asc v0.1.33

02 Mar 04:48

Choose a tag to compare

Added

  • asc init — initialise project context by saving the app ID, name, and bundle ID to .asc/project.json in the current directory; supports --app-id (direct), --name (search by name), or auto-detect from .xcodeproj bundle identifier; output includes CAEOAS affordances for common next steps

asc v0.1.32

01 Mar 12:58

Choose a tag to compare

Bug fixes and improvements.

asc v0.1.31

01 Mar 09:45

Choose a tag to compare

Added

  • asc version-review-detail get --version-id <id> — fetch the App Store review contact info and demo account settings for a version
  • asc version-review-detail update --version-id <id> [flags] — upsert review info (creates if none exists, patches if already set); supports --contact-first-name, --contact-last-name, --contact-phone, --contact-email, --demo-account-required, --demo-account-name, --demo-account-password, --notes
  • notes field added to AppStoreReviewDetail domain model
  • getReviewDetail affordance added to AppStoreVersion for agent navigation

asc v0.1.30

01 Mar 08:00

Choose a tag to compare

Added

  • asc age-rating get --app-info-id <id> — fetch the full age rating declaration for an app info, including all content intensity ratings, boolean flags, kids age band, and region overrides
  • asc age-rating update --declaration-id <id> [flags] — update individual age rating fields via PATCH; supports all 9 boolean flags (--advertising, --gambling, --loot-box, etc.) and 13 intensity ratings (--violence-realistic, --profanity, --sexual-content, etc.) plus --kids-age-band, --age-rating-override, and --korea-age-rating-override
  • getAgeRating affordance added to AppInfo for agent navigation
  • --privacy-choices-url and --privacy-policy-text flags on asc app-info-localizations update — expose the two remaining updatable privacy fields from the App Store Connect API
  • asc app-info-localizations delete --localization-id <id> — remove a per-locale metadata entry; delete affordance added to AppInfoLocalization
  • asc app-infos update --app-info-id <id> [--primary-category] [--primary-subcategory-one] [--primary-subcategory-two] [--secondary-category] [--secondary-subcategory-one] [--secondary-subcategory-two] — set or update all 6 category relationship fields on an AppInfo; updateCategories affordance added to AppInfo
  • asc app-categories list [--platform IOS|MAC_OS|TV_OS] — list all available App Store categories and subcategories; returns a flat list combining top-level (data[]) and subcategories (included[]) from the API; AppCategory domain model with parentId for subcategory identification

asc v0.1.29

01 Mar 04:20

Choose a tag to compare

Added

  • --style-reference <path> flag on asc app-shots generate and asc app-shots translate — pass any PNG/JPEG as a visual style guide; Gemini replicates the reference's colors, typography, gradients, and layout patterns without copying its content; the reference image is sent as the first part in the Gemini request followed by an explicit style-guide instruction

asc v0.1.28

28 Feb 13:15

Choose a tag to compare

Added

  • --device-type flag on asc app-shots generate and asc app-shots translate — accepts named App Store display type constants (APP_IPHONE_69, APP_IPHONE_67, APP_IPAD_PRO_129, etc.) and automatically sets the correct --output-width/--output-height; overrides explicit dimension flags when both are provided; all 16 device types supported across iPhone, iPad, Apple TV, Mac, and Apple Vision Pro

Fixed

  • asc app-shots generate and asc app-shots translate now upscale Gemini output to the correct App Store dimensions using CoreGraphics. Gemini returns ~704×1520; the required iPhone 6.9" size is 1320×2868. New --output-width (default 1320) and --output-height (default 2868) flags control the target size for all other device types.

asc v0.1.27

28 Feb 09:18

Choose a tag to compare

Added

  • asc app-shots translate — one-shot localization of generated screenshots; reads the English plan + existing screen-{n}.png files, sends them to Gemini with per-locale translation instructions, writes {output-dir}/{locale}/screen-{n}.png; supports multiple locales in one invocation (--to zh --to ja --to ko); locales processed in parallel via TaskGroup
  • asc app-shots generate — AI-powered App Store screenshot generation using Gemini; reads a ScreenPlan JSON + screenshot images, calls Gemini image generation API, writes screen-{index}.png files; --plan defaults to .asc/app-shots/app-shots-plan.json, --output-dir defaults to .asc/app-shots/output, screenshots auto-discovered from plan directory when not provided — zero-argument happy path: asc app-shots generate
  • asc app-shots config — persistent Gemini API key management; --gemini-api-key saves to ~/.asc/app-shots-config.json, bare invocation shows current key + source (file/env), --remove deletes it; generate resolves key from flag → env var → stored config
  • ScreenPlan, ScreenConfig, ScreenTone, LayoutMode, ScreenColors, AppShotsConfig domain models
  • ScreenshotGenerationRepository + AppShotsConfigStorage @Mockable protocols
  • GeminiScreenshotGenerationRepository — native Gemini generateContent API with responseModalities: ["TEXT","IMAGE"], parallel TaskGroup generation
  • FileAppShotsConfigStorage — saves Gemini API key to ~/.asc/app-shots-config.json

asc v0.1.26

28 Feb 08:27

Choose a tag to compare

Added

  • asc app-shots generate — AI-powered App Store screenshot plan enhancement using Gemini AI; reads a ScreenPlan JSON, optionally includes screenshot images for visual context, and returns enhanced headings, subheadings, and image prompts
  • ScreenPlan, ScreenConfig, ScreenTone, LayoutMode, ScreenColors domain models with CAEOAS affordances
  • ScreenshotGenerationRepository @Mockable protocol; GeminiScreenshotGenerationRepository implementation using URLSession and Gemini OpenAI-compatible API
  • --output-file flag to write enhanced plan JSON to disk in addition to stdout
  • --model flag to select Gemini model (default: gemini-2.0-flash-exp)

asc v0.1.25

27 Feb 07:09

Choose a tag to compare

Added

  • asc subscriptions submit — submit a subscription for App Store review; submit affordance on Subscription appears only when state == READY_TO_SUBMIT
  • asc subscription-offers list — list introductory offers for a subscription
  • asc subscription-offers create — create a FREE_TRIAL, PAY_AS_YOU_GO, or PAY_UP_FRONT introductory offer; validates that --price-point-id is provided for paid modes
  • SubscriptionIntroductoryOffer domain model with SubscriptionOfferDuration and SubscriptionOfferMode enums; requiresPricePoint semantic boolean on SubscriptionOfferMode
  • createIntroductoryOffer and listIntroductoryOffers CAEOAS affordances on Subscription
  • asc iap list — list in-app purchases (consumable, non-consumable, non-renewing subscription) for an app
  • asc iap create — create a new in-app purchase with reference name, product ID, and type
  • asc iap-localizations list — list localizations for an in-app purchase
  • asc iap-localizations create — create a per-locale name and description for an in-app purchase
  • asc subscription-groups list — list subscription groups for an app
  • asc subscription-groups create — create a new subscription group
  • asc subscriptions list — list subscriptions within a group
  • asc subscriptions create — create a subscription with period (ONE_WEEK–ONE_YEAR), family sharing, and group level
  • asc subscription-localizations list — list per-locale metadata for a subscription
  • asc subscription-localizations create — create a per-locale name and description for a subscription
  • asc iap submit — submit an in-app purchase for App Store review
  • asc iap price-points list — list available price tiers for an IAP, optionally filtered by territory
  • asc iap prices set — set the price schedule for an IAP (base territory + auto-pricing for all others)
  • InAppPurchaseSubmission, InAppPurchasePricePoint, InAppPurchasePriceSchedule domain models with CAEOAS affordances
  • InAppPurchaseState and SubscriptionState enums with semantic booleans (isApproved, isLive, isEditable, isPendingReview)
  • CAEOAS affordances on all new models linking to sibling and child commands
  • asc app-preview-sets list — list App Store video preview sets for a version localization
  • asc app-preview-sets create — create a new preview set for a specific device type
  • asc app-previews list — list video previews in a preview set
  • asc app-previews upload — upload a video file (.mp4, .mov, .m4v) to a preview set using a 3-step upload flow (reserve → PUT chunks → PATCH with MD5)
  • PreviewType enum with 16 device cases (iPhone, iPad, Mac, Apple TV, Apple Vision Pro)
  • AppPreview.VideoDeliveryState with 5 states including PROCESSING (unique to video)
  • Renamed --group-id to --beta-group-id in all asc testflight testers commands for consistency with asc builds add-beta-group