New Apple InApp-Purchases in iOS 11...

“Your app must support the new SKPaymentTransactionObserver method to make in-app purchases available on the App Store.”

What does this mean for Corona apps?

I would also like to know how this affects IAP. Is it already implemented, or will IAP stop working immediately for users on iOS 11?

@d.mach where did that message originate?

Thanks

Rob

It was taken from this page:

https://developer.apple.com/app-store/product-page/

Here are some more links:

https://developer.apple.com/app-store/promoting-in-app-purchases/

https://help.apple.com/itunes-connect/developer/#/deve3105860f

https://developer.apple.com/app-store/promoting-in-app-purchases/

And one more…

https://developer.apple.com/in-app-purchase/

I’ve alerted the team to see if this impacts us.

Rob

Any update on this?  Just curious… would love to add a couple IAPs of mine to this and just want to make sure all would work ok…  thanks

First, iOS 11 isn’t shipping until September. Only a small portion of people will install the iOS 11 public beta as will some developers. While we support “SKPaymentTransactionObserver” (you can’t do IAP without it), there is a new extension in iOS 11 that we will have to add support for. Our engineers are aware of the need and know what we need to do but we probably won’t introduce this until closer to the iOS 11 release date.

Rob

Additional update. Apparently you can’t even test this on iOS 11 beta yet.

Rob

Thanks Rob! Keep us posted.

iOS 11 Beta 3 just came out. Any news on this?

We probably won’t look at this until closer to release.

Rob

Any news on this? We have submitted IAP to be featured and the same message appears:

“Once submissions are accepted for apps built with the iOS 11 SDK, your app will need to support the new SKPaymentTransactionObserver method for your in-app purchases to appear on the App Store.”

Asking…

Hello Rob! Any news?

We should be good to go if I understood everything correctly.

We of course will have to test it once iOS 11 goes live.

Rob

Any news yet about this and will there be a sample on how to implement the new stuff?

There really are no changes you have to make. If someone buys something through the App Store, when your app starts it will receive queued up transactions.  You should init the store.* API’s as soon as you can and be prepared to handle transactions.

But there are no new API calls you need to make. As long as you can process purchase transactions you should be good to go.

Rob

I have the store init only when the user is in the app pushing a button… so would this mean I should do a store init best in main.lua right at the start then, so the user has to log in with his AppleID at the start of the game?

This can be annoying with educational apps… everytime the game starts the login is appearing then. Or did I get this totally wrong?

I don’t believe store.* generates a login event when it’s .init() calls. You shouldn’t get prompted until you do something like purchase an item.  I’m unsure about loadProducts() but that can be deferred until needed.

Rob

Just to make sure we implement this correctly:

With the new iOS11 a user can “buy” an app  by clicking on promoted InApp Purchases in the App Store. So for example: He clicks on an InApp Purchase, then the app get’s downloaded. When the download is finished the app is started and a purchase with the purchase ID is queued, so I have to look at the start of the app for an existing transaction (with the transaction listener). This means: I init the store at start, then check for the purchase right at the beginning and unlock it if it is there. Correct?

UPDATE: Normally when a product (non-consumable) is purchased from inside the app we have to call the store.purchase()… so does this mean the app starts and the store.purchase call is queued already? How is this handled correctly?

Can I also do a store.restore() parallel to that at start?