There is a framework called Offline StoreKit 2 to handle StoreKit 2 in cases where there is no internet (offline) or airplane mode. It allows you to store requests to the App Store (Product.products and Transaction.currentEntitlements). Validated transactions are serialized in wrapper classes OfflineProduct and OfflineTransaction. They are stored in UserDefaults using AES.GCM encryption using a unique key. This prevents copying between devices or changing the content. When you go offline, the framework triggers a delegate that populates the wrapper classes for you to use temporarily offline. When you come back online, your app starts working normally again. The repository is: https://github.com/fborelli/OfflineStoreKit2.git