Family sharing of in app purchases

We have enabled family sharing for our in-app purchases in AppStore connect.

From several customers we received feedback that their purchases are not available on their family members devices.

If the family members want to purchase the product, an AppStore pop-up will tell them that a family member has made the purchase and they will get it for free. Then the purchase cannot proceed. This makes sense.

I have investigated the appstore receipts of the customers reporting issues, and it turns out that these receipts do not contain the purchases of the other family members. Refreshing the receipt via SKReceiptRefreshRequest does not solve the issue.

Because the purchases of the other family members do not show up in the receipt, the app does not unlock the content and the user is displayed the not-functioning purchase button.

Sometimes customers also report that one in-app purchase is family shared but others (for which we enabled family sharing) not.

Any people familiar with this issues with family sharing of in-app purchases? Is there a solution?

Answered by Steve T in 680674022

It would seem that you are correct in that using SKReceiptRefreshRequest to get a new receipt onto the device does not fix this issue since the new receipt still does not include the purchases by the other family sharing members.

However, calling SKPaymentQueue.restoreCompletedTransactions appears to generate a new receipt on the device that does now include purchases from other family members.

You don't need to actually process any of the restored transactions, because it is just a receipt we are after, you just need to call it to get that new receipt containing items purchased by other family members.

This is very hard to fully workout why this is happening as it is not possible to enable Family Sharing in the Sandbox environment and debug.

Harman78 can you confirm this is the behaviour you see as well ?

Can anyone from Apple shed any light on this ? It's not in the docs.

I am seeing exactly the same issue. Have you had any luck finding a solution?

Accepted Answer

It would seem that you are correct in that using SKReceiptRefreshRequest to get a new receipt onto the device does not fix this issue since the new receipt still does not include the purchases by the other family sharing members.

However, calling SKPaymentQueue.restoreCompletedTransactions appears to generate a new receipt on the device that does now include purchases from other family members.

You don't need to actually process any of the restored transactions, because it is just a receipt we are after, you just need to call it to get that new receipt containing items purchased by other family members.

This is very hard to fully workout why this is happening as it is not possible to enable Family Sharing in the Sandbox environment and debug.

Harman78 can you confirm this is the behaviour you see as well ?

Can anyone from Apple shed any light on this ? It's not in the docs.

Dear Steve T,

Thanks for your tip! Indeed I am not calling SKPaymentQueue.restoreCompletedTransactions, but only SKReceiptRefreshRequest, since I was processing the receipts anyway on our server. I will try to call SKPaymentQueue.restoreCompletedTransactions as well and see if that solves the issue. It will take a while before I can confirm that this works.

After I have added SKPaymentQueue.restoreCompletedTransactions I did not receive any complaints of users expierincing problems with family sharing of in app purchases.

So concluding, SKReceiptRefreshRequest refreshes the receipt, but does not always fetch all family shared in-app purchases. To make sure you get all the in app purchases shared by family members you need to invoke SKPaymentQueue.restoreCompletedTransactions.

Family sharing of in app purchases
 
 
Q