StoreKit 2/StoreKit for Paid to Fremium Migration

I am trying to migrate my app from paid to freemium and am facing several issues and doubts. Specifically, I am trying to use StoreKit2 AppTransaction API but I am not averse to using StoreKit if my problems are not solved by StoreKit2:

Here are my questions:

  1. AppTransaction/Receipt on launch: I see on launch the AppTransaction.shared call fails on the sandbox initially. That means it's possible that on user's who have purchased the app previously, the AppTransaction (or appStoreReceipt in original StoreKit) may not be available when the user downloads or updates the app? That means I will need to ask every user to authenticate with AppStore to refresh the receipt/AppTransaction?

  2. Volume Purchase Users: I see StoreKit2 is not advised for volume purchases on the Apple website. I am not sure why that is the case, but does that mean AppTransaction will not be available for users who made Volume purchases under VPP? Is the flow to validate VPP users different? If StoreKit 2 can not be used, can the original StoreKit API help here, or nothing can be of help here?

Replies

I'm stuck with the same problem regarding AppTransaction and volume purchase program customers.

Did you find a solution?

It looks like it would be possible to use the AppReceiptValidator library to locally determine if the environment is "ProductionVPP" (see https://github.com/IdeasOnCanvas/AppReceiptValidator/blob/49e95b1d67ba5c86b016231264832e12496897e8/Sources/AppReceiptValidator/UnofficialReceipt.swift#L32).

It's impossible for me to test this though since I don't have access to a sample VPP receipt. I'm not sure if a VPP receipt does contain the originalAppVersion field for example.

  • I believe originalAppVersion should be present in the AppTransaction, no matter the type of purchase. Only Apple Engineers can verify this, but I can only know once I push my update in the coming few weeks.

  • VPP users ARE facing issues I can confirm.

Add a Comment