Add offline resilience to subscription status checks

Cache subscription expiration date so premium access survives
offline launches and transient StoreKit failures. Restores cached
state synchronously on init to eliminate loading flash.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-10 09:56:14 -06:00
parent 65460c63b3
commit 1e8acfa320
3 changed files with 38 additions and 141 deletions

View File

@@ -1,139 +0,0 @@
{
"appPolicies" : {
"eula" : "",
"policies" : [
{
"locale" : "en_US",
"policyText" : "",
"policyURL" : ""
}
]
},
"identifier" : "00CCEDCC",
"nonRenewingSubscriptions" : [
],
"products" : [
],
"settings" : {
"_askToBuyEnabled" : false,
"_billingGracePeriodEnabled" : false,
"_billingIssuesEnabled" : false,
"_disableDialogs" : false,
"_failTransactionsEnabled" : false,
"_locale" : "en_US",
"_renewalBillingIssuesEnabled" : false,
"_storefront" : "USA",
"_storeKitErrors" : [
{
"enabled" : false,
"name" : "Load Products"
},
{
"enabled" : false,
"name" : "Purchase"
},
{
"enabled" : false,
"name" : "Verification"
},
{
"enabled" : false,
"name" : "App Store Sync"
},
{
"enabled" : false,
"name" : "Subscription Status"
},
{
"enabled" : false,
"name" : "App Transaction"
},
{
"enabled" : false,
"name" : "Manage Subscriptions Sheet"
},
{
"enabled" : false,
"name" : "Refund Request Sheet"
},
{
"enabled" : false,
"name" : "Offer Code Redeem Sheet"
}
],
"_timeRate" : 0
},
"subscriptionGroups" : [
{
"id" : "21914363",
"localizations" : [
],
"name" : "group1",
"subscriptions" : [
{
"adHocOffers" : [
],
"codeOffers" : [
],
"displayPrice" : "0.99",
"familyShareable" : false,
"groupNumber" : 1,
"internalID" : "C011E06B",
"introductoryOffer" : null,
"localizations" : [
{
"description" : "Flexible month-to-month billing",
"displayName" : "Monthly",
"locale" : "en_US"
}
],
"productID" : "com.88oakapps.feels.IAP.subscriptions.monthly",
"recurringSubscriptionPeriod" : "P1M",
"referenceName" : "Monthly",
"subscriptionGroupID" : "21914363",
"type" : "RecurringSubscription",
"winbackOffers" : [
]
},
{
"adHocOffers" : [
],
"codeOffers" : [
],
"displayPrice" : "9.99",
"familyShareable" : false,
"groupNumber" : 1,
"internalID" : "32967821",
"introductoryOffer" : null,
"localizations" : [
{
"description" : "Best value — save over 15%",
"displayName" : "Yearly",
"locale" : "en_US"
}
],
"productID" : "com.88oakapps.feels.IAP.subscriptions.yearly",
"recurringSubscriptionPeriod" : "P1Y",
"referenceName" : "Yearly",
"subscriptionGroupID" : "21914363",
"type" : "RecurringSubscription",
"winbackOffers" : [
]
}
]
}
],
"version" : {
"major" : 4,
"minor" : 0
}
}