|
|
Grants the app owner Pro+ without a purchase, keyed to their CloudKit
user-record ID so it works on the release App Store build.
- OwnerAccess holds the owner's CloudKit user-record ID (opaque, per-Apple-ID,
scoped to the app's container; safe to publish — CloudKit verifies identity
server-side, so it can't be presented by anyone else).
- PurchaseService resolves the allowlist against CloudKit once per launch and,
on a match, records a persisted owner grant so it applies instantly and
offline thereafter. The grant only ever elevates the tier to .proPlus and
defers to the existing #if DEBUG overrides, so real purchases and free/pro
testing are unaffected. cachedTier / cachedEntitlement were refactored to
fall back to the owner grant only when no debug override or stored purchase
applies.
- Supersedes the DEBUG record-ID reveal (PR #60): its only purpose was to read
the owner's ID, which is now hardcoded, so the reveal is not shipped.
Release cut: MARKETING_VERSION 5.0.0 -> 5.0.1, CURRENT_PROJECT_VERSION 45 -> 46,
AppVersion.current -> 5.0.1, roadmap updated. App builds clean; unit suite 63/63.
|