Skip to content

asc v0.18.4

Choose a tag to compare

@github-actions github-actions released this 23 Sep 06:32
· 71 commits to main since this release
abe1c19

Fixed

  • asc subscriptions prices set-batch sends one request instead of one per territory — it now sends a single PATCH /v1/subscriptions/{id} with every price inlined (SubscriptionPriceInlineCreate) instead of one POST /v1/subscriptionPrices per territory. Pricing all 175 territories took 175 sequential POSTs (over a minute per subscription), and a failure partway through left some territories priced and others not; Apple now applies the batch all-or-nothing. The REST POST /api/v1/subscriptions/:id/prices route benefits too, since it uses the same repository method.
  • Subscription price schedules no longer drop manual prices after the first 50 — subscription-price-schedule get (and the read-back after set-batch) fetched /v1/subscriptions/{id}/prices without a limit, so only Apple's default first page came back and the other territories were filled with the first price's equalizations, showing wrong prices where custom per-territory prices were set. It now requests limit=200 and follows the pagination cursor.
  • The other per-territory price lists no longer stop at 50 — the same truncation affected iap-price-schedule get (manual prices), iap-offer-codes prices list, subscription-offer-codes prices list, subscription-promotional-offers prices list and win-back-offers prices list. They called Apple without a limit and read one page, so any territory past Apple's default 50 was missing. They now request limit=200 and follow every page through a shared APIClient.requestAllPages(_:nextCursor:) helper, which subscription-price-schedule get uses too.
  • Offer price lists now show each price's territory and price point — iap-offer-codes prices list, subscription-offer-codes prices list, subscription-promotional-offers prices list and win-back-offers prices list returned entries with only id and the offer ID, because Apple sends a price's territory and price point only when the request asks for them with include=. The requests now include both, so territory and the price-point ID are filled in, over CLI and REST.
  • More list commands no longer stop at Apple's first page — reviews list, devices list, bundle-ids list, profiles list (with and without --bundle-id-id), users list, versions list, builds uploads list, xcode-cloud builds list and diagnostics list read a single page with no limit, so anything past Apple's default page size (50 for most endpoints, 20 for bundle IDs) was silently dropped. They now request limit=200 and follow every page through APIClient.requestAllPages. On a real account, builds uploads list went from 50 to 122 entries and bundle-ids list from 20 to 85.
  • profiles list shows each profile's bundle ID again — without --bundle-id-id, every profile came back with bundleIdId: "" (and a broken listProfiles affordance), because the bundle ID linkage is only returned when the request asks for it with include=bundleId. The request now includes it.