Switching from paid upfront to freemium requires grandfathering existing users who already purchased the app. Using StoreKit's AppTransaction API, you can check the original app version or purchase date to identify legacy users and grant them lifetime access. Testing has quirks: TestFlight always reports version 1.0, reinstalls reset the original version, and device clock manipulation can affect date-based checks. The release sequence matters: set manual release, add reviewer notes explaining the transition, get approval, change the price to free in App Store Connect, then release the approved build. Cache legacy status locally in UserDefaults (or keychain for better security), and consider CloudKit for multi-device scenarios.

9m read timeFrom donnywals.com
Post cover image
Table of contents
Grandfathering in users through StoreKitTesting gotchasMaking the moveIn Summary

Sort: