Fix iOS Subscription Validation
Budget: $250 – $750 USD
My Objective-C app uses RMStore and wrongly treats an auto-renewable subscription as a lifetime purchase. A single keychain flag stays true forever, so premium features never disappear even when the user cancels in Settings or lets the plan lapse.
I need the purchase flow refactored so access depends on the current StoreKit entitlement, not on the fact that the product was ever bought. On each launch and when the app returns to foreground you should:
• Read the latest receipt (or, if you prefer, use StoreKit 2’s transaction/entitlement APIs) and confirm the auto-renewable product is still inside its validity window.
• Clear the keychain flag—or gate the UI another way—whenever the subscription is no longer active.
• Present a friendly in-app renewal prompt at that moment, guiding the user back to the paywall.
Everything runs on iOS only, written largely in Objective-C, but I’m happy for you to add Swift modules if StoreKit 2 makes the job cleaner. Please update any helper classes, add sandbox test cases, and document the verification flow so I can repeat it on future builds. A concise README or code comments showing how to test expirations with Xcode’s StoreKit configuration files will be the acceptance criteria.
I need the purchase flow refactored so access depends on the current StoreKit entitlement, not on the fact that the product was ever bought. On each launch and when the app returns to foreground you should:
• Read the latest receipt (or, if you prefer, use StoreKit 2’s transaction/entitlement APIs) and confirm the auto-renewable product is still inside its validity window.
• Clear the keychain flag—or gate the UI another way—whenever the subscription is no longer active.
• Present a friendly in-app renewal prompt at that moment, guiding the user back to the paywall.
Everything runs on iOS only, written largely in Objective-C, but I’m happy for you to add Swift modules if StoreKit 2 makes the job cleaner. Please update any helper classes, add sandbox test cases, and document the verification flow so I can repeat it on future builds. A concise README or code comments showing how to test expirations with Xcode’s StoreKit configuration files will be the acceptance criteria.
Related categories:
Mobile App Development
iPhone
C# Programming
Objective C
Swift
iOS Development
Mobile Development
App Development