I'm struggling to find a way to check in the Store Kit framework a way to check if user already bought the in-app non-consumable item in order to avoid the ""You've already purchased this but it hasn't been downloaded. Tap OK to download it now. [Environment: Sandbox]""
I set my feature hardcoded in the app and save the state in sqlite file, please I'm not looking for answer about best pratice...
I already tried to get the payment callback hoping to trigger SKPaymentTransactionStateRestored buy in such case the callback is not called
any ideas? any?
AFAIK, there is not way to get that kind of information from StoreKit. If you google a bit, you will find a sort of hack described: trying to silently restore transactions in the first place, so you know which items the users has already bought. Unfortunately, this approach is not Apple-friendly and might be cause of rejection.
What I do to manage a case similar to yours is checking beforehand my local state to know whether the user has already bought the non-consumable item and then show/hide the purchase option. The information can be stored in NSUserDefaults and sync-ed through iCloud if you want to go a step further and make it available across devices and reinstalls.