If you delete a paid app that was purchased on the production App Store, then re-install the same app from the production App Store, the appStoreReceipt in the updated app will be the same as it was when you deleted the app. Whenever the production App Store installs any app to a system, it includes the most recent version of the appStoreReceipt.
However, this is not the case with the sandbox App Store. When you install an app via TestFlight or Xcode, there will never be an appStoreReceipt until one of the following occurs -
- a successful In-App Purchase is made
- the restoreCompletedTransactions call is successful in restoring previous sandbox purchases or
- the app uses the SKReceiptRefreshRequest method and the user authenticates the use of this method. Usually this issue is raised with regards to the "Paid-to-freemium" transition. If this is your case, refer to my response in this developer forum posting.
rich kubota
developer technical support CoreOS/Hardware/MFI