Thanks for being a part of WWDC25!

How did we do? We’d love to know your thoughts on this year’s conference. Take the survey here

StoreKit 2: Handle unfinished consumables

I have non-consumable and consumable in-app purchases in my app. The tutorial I was following stated Transaction.currentEntitlements includes unfinished consumables, which is incorrect according to the documentation. Is the correct way to handle unfinished consumables (and non-consumables) to implement Transaction.updates and call finish() if it’s verified? The documentation says that listener will receive unfinished transactions once upon app launch, so with that, do I understand correctly you do not need to implement Transaction.unfinished unless you want to look for unfinished transactions manually later on? Otherwise what is the correct and most recommended way to handle unfinished consumables? Is there a way to test that scenario in Xcode?

Answered by DTS Engineer in 843619022

Is the correct way to handle unfinished consumables (and non-consumables) to implement Transaction.updates and call finish() if it’s verified?

Yes.

The documentation says that listener will receive unfinished transactions once upon app launch, so with that, do I understand correctly you do not need to implement Transaction.unfinished unless you want to look for unfinished transactions manually later on?

That is correct. Use Transaction.unfinished if you want to want to have a way to check all unfinished transactions.

Is there a way to test that scenario in Xcode?

Comment out the line calling finish() in your code.

Accepted Answer

Is the correct way to handle unfinished consumables (and non-consumables) to implement Transaction.updates and call finish() if it’s verified?

Yes.

The documentation says that listener will receive unfinished transactions once upon app launch, so with that, do I understand correctly you do not need to implement Transaction.unfinished unless you want to look for unfinished transactions manually later on?

That is correct. Use Transaction.unfinished if you want to want to have a way to check all unfinished transactions.

Is there a way to test that scenario in Xcode?

Comment out the line calling finish() in your code.

StoreKit 2: Handle unfinished consumables
 
 
Q