Skip to content

detail: resolve display version + release date per external id#5

Merged
Evil0ctal merged 1 commit into
mainfrom
feat/m2.5-version-metadata
May 6, 2026
Merged

detail: resolve display version + release date per external id#5
Evil0ctal merged 1 commit into
mainfrom
feat/m2.5-version-metadata

Conversation

@Evil0ctal
Copy link
Copy Markdown
Owner

what

version timeline rows now read `9.7.2 · 2026-04-30` instead of
`ext 831776527`. metadata streams in after listVersions returns.

why

  • "ext NNNNN" is opaque to humans; the killer feature of EvilStore is
    picking the right historic version, and that needs a readable label
  • shares the wiring m3 will reuse for the actual download

changes

  • AppStoreClient.versionMetadata + VersionMetadata.run plist roundtrip
    (volumeStoreDownloadProduct with externalVersionId set; ipa URL
    discarded)
  • AppDetailViewModel.resolveMetadata: sequential per-row resolution
    paced by the HTTPClient AsyncThrottle (>=500ms)
  • failures stay silent at the row level — partial resolution is OK,
    the timeline never blocks on a single bad row

test

  • xcodebuild Debug + Release archive both green
  • on real device with stealth Account: scroll the timeline; rows
    swap from "ext 831776527" → "9.7.2 · 2026-04-30" as the rate-limited
    metadata calls land

next

m3 — actual download + IPAPatcher (sinf injection + iTunesMetadata).

m2.5 fills in the rows that previously read "ext 831776527". the version
timeline now shows "9.7.2 · 2026-04-30" once metadata streams in.

* AppStoreClient.versionMetadata + VersionMetadata.run hits the same
  /volumeStoreDownloadProduct endpoint with externalVersionId set, then
  reads songList[0].metadata.bundleShortVersionString + .releaseDate
  from the response. apple's signed ipa URL is discarded — m3 reuses
  the wiring when it actually downloads bytes.
* AppDetailViewModel resolves sequentially after listVersions returns.
  the HTTPClient AsyncThrottle paces calls at >=500ms so storefront
  rate-limits stay happy.
* failures during metadata resolution are silent — the row stays as
  "ext NNNNN" rather than blocking the whole timeline.

ios 14 baseline preserved.
@Evil0ctal Evil0ctal merged commit 237d511 into main May 6, 2026
3 checks passed
@Evil0ctal Evil0ctal deleted the feat/m2.5-version-metadata branch May 6, 2026 00:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant