Releases: tddworks/asc-cli
Releases · tddworks/asc-cli
asc v0.1.34
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
Added
asc init— initialise project context by saving the app ID, name, and bundle ID to.asc/project.jsonin the current directory; supports--app-id(direct),--name(search by name), or auto-detect from.xcodeprojbundle identifier; output includes CAEOAS affordances for common next steps
asc v0.1.32
Bug fixes and improvements.
asc v0.1.31
Added
asc version-review-detail get --version-id <id>— fetch the App Store review contact info and demo account settings for a versionasc 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,--notesnotesfield added toAppStoreReviewDetaildomain modelgetReviewDetailaffordance added toAppStoreVersionfor agent navigation
asc v0.1.30
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 overridesasc 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-overridegetAgeRatingaffordance added toAppInfofor agent navigation--privacy-choices-urland--privacy-policy-textflags onasc app-info-localizations update— expose the two remaining updatable privacy fields from the App Store Connect APIasc app-info-localizations delete --localization-id <id>— remove a per-locale metadata entry;deleteaffordance added toAppInfoLocalizationasc 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;updateCategoriesaffordance added toAppInfoasc 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;AppCategorydomain model withparentIdfor subcategory identification
asc v0.1.29
Added
--style-reference <path>flag onasc app-shots generateandasc 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
Added
--device-typeflag onasc app-shots generateandasc 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 generateandasc app-shots translatenow 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(default1320) and--output-height(default2868) flags control the target size for all other device types.
asc v0.1.27
Added
asc app-shots translate— one-shot localization of generated screenshots; reads the English plan + existingscreen-{n}.pngfiles, 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 viaTaskGroupasc app-shots generate— AI-powered App Store screenshot generation using Gemini; reads aScreenPlanJSON + screenshot images, calls Gemini image generation API, writesscreen-{index}.pngfiles;--plandefaults to.asc/app-shots/app-shots-plan.json,--output-dirdefaults to.asc/app-shots/output, screenshots auto-discovered from plan directory when not provided — zero-argument happy path:asc app-shots generateasc app-shots config— persistent Gemini API key management;--gemini-api-keysaves to~/.asc/app-shots-config.json, bare invocation shows current key + source (file/env),--removedeletes it;generateresolves key from flag → env var → stored configScreenPlan,ScreenConfig,ScreenTone,LayoutMode,ScreenColors,AppShotsConfigdomain modelsScreenshotGenerationRepository+AppShotsConfigStorage@MockableprotocolsGeminiScreenshotGenerationRepository— native GeminigenerateContentAPI withresponseModalities: ["TEXT","IMAGE"], parallel TaskGroup generationFileAppShotsConfigStorage— saves Gemini API key to~/.asc/app-shots-config.json
asc v0.1.26
Added
asc app-shots generate— AI-powered App Store screenshot plan enhancement using Gemini AI; reads aScreenPlanJSON, optionally includes screenshot images for visual context, and returns enhanced headings, subheadings, and image promptsScreenPlan,ScreenConfig,ScreenTone,LayoutMode,ScreenColorsdomain models with CAEOAS affordancesScreenshotGenerationRepository@Mockableprotocol;GeminiScreenshotGenerationRepositoryimplementation using URLSession and Gemini OpenAI-compatible API--output-fileflag to write enhanced plan JSON to disk in addition to stdout--modelflag to select Gemini model (default:gemini-2.0-flash-exp)
asc v0.1.25
Added
asc subscriptions submit— submit a subscription for App Store review;submitaffordance onSubscriptionappears only whenstate == READY_TO_SUBMITasc subscription-offers list— list introductory offers for a subscriptionasc subscription-offers create— create aFREE_TRIAL,PAY_AS_YOU_GO, orPAY_UP_FRONTintroductory offer; validates that--price-point-idis provided for paid modesSubscriptionIntroductoryOfferdomain model withSubscriptionOfferDurationandSubscriptionOfferModeenums;requiresPricePointsemantic boolean onSubscriptionOfferModecreateIntroductoryOfferandlistIntroductoryOffersCAEOAS affordances onSubscriptionasc iap list— list in-app purchases (consumable, non-consumable, non-renewing subscription) for an appasc iap create— create a new in-app purchase with reference name, product ID, and typeasc iap-localizations list— list localizations for an in-app purchaseasc iap-localizations create— create a per-locale name and description for an in-app purchaseasc subscription-groups list— list subscription groups for an appasc subscription-groups create— create a new subscription groupasc subscriptions list— list subscriptions within a groupasc subscriptions create— create a subscription with period (ONE_WEEK–ONE_YEAR), family sharing, and group levelasc subscription-localizations list— list per-locale metadata for a subscriptionasc subscription-localizations create— create a per-locale name and description for a subscriptionasc iap submit— submit an in-app purchase for App Store reviewasc iap price-points list— list available price tiers for an IAP, optionally filtered by territoryasc iap prices set— set the price schedule for an IAP (base territory + auto-pricing for all others)InAppPurchaseSubmission,InAppPurchasePricePoint,InAppPurchasePriceScheduledomain models with CAEOAS affordancesInAppPurchaseStateandSubscriptionStateenums 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 localizationasc app-preview-sets create— create a new preview set for a specific device typeasc app-previews list— list video previews in a preview setasc 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)PreviewTypeenum with 16 device cases (iPhone, iPad, Mac, Apple TV, Apple Vision Pro)AppPreview.VideoDeliveryStatewith 5 states includingPROCESSING(unique to video)- Renamed
--group-idto--beta-group-idin allasc testflight testerscommands for consistency withasc builds add-beta-group