Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

New Apple InApp-Purchases in iOS 11...
Started by d.mach Jun 27 2017 11:45 PM

26 replies to this topic
[TOPIC CONTROLS]
Page 1 of 2 1 2
This topic has been archived. This means that you cannot reply to this topic.
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

d.mach

[GLOBAL: userInfoPane.html]
d.mach
  • Contributor

  • 872 posts
  • Corona SDK

"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?



[TOPIC: post.html]
#2

Alan PlantPot

[GLOBAL: userInfoPane.html]
Alan PlantPot
  • Contributor

  • 919 posts
  • Corona SDK

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?



[TOPIC: post.html]
#3

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

@d.mach where did that message originate?

 

Thanks

Rob



[TOPIC: post.html]

[TOPIC: post.html]
#5

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

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

 

Rob



[TOPIC: post.html]
#6

borderleap

[GLOBAL: userInfoPane.html]
borderleap
  • Contributor

  • 400 posts
  • Corona SDK

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



[TOPIC: post.html]
#7

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

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



[TOPIC: post.html]
#8

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

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

 

Rob



[TOPIC: post.html]
#9

blakeleftwich

[GLOBAL: userInfoPane.html]
blakeleftwich
  • Enthusiast

  • 59 posts
  • Corona SDK

Thanks Rob! Keep us posted.



[TOPIC: post.html]
#10

zach78

[GLOBAL: userInfoPane.html]
zach78
  • Observer

  • 8 posts
  • Corona SDK

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



[TOPIC: post.html]
#11

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

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

 

Rob



[TOPIC: post.html]
#12

blakeleftwich

[GLOBAL: userInfoPane.html]
blakeleftwich
  • Enthusiast

  • 59 posts
  • Corona SDK

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."



[TOPIC: post.html]
#13

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

Asking....



[TOPIC: post.html]
#14

blakeleftwich

[GLOBAL: userInfoPane.html]
blakeleftwich
  • Enthusiast

  • 59 posts
  • Corona SDK

Hello Rob! Any news?

[TOPIC: post.html]
#15

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

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



[TOPIC: post.html]
#16

d.mach

[GLOBAL: userInfoPane.html]
d.mach
  • Contributor

  • 872 posts
  • Corona SDK

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



[TOPIC: post.html]
#17

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

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



[TOPIC: post.html]
#18

d.mach

[GLOBAL: userInfoPane.html]
d.mach
  • Contributor

  • 872 posts
  • Corona SDK

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?



[TOPIC: post.html]
#19

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

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



[TOPIC: post.html]
#20

d.mach

[GLOBAL: userInfoPane.html]
d.mach
  • Contributor

  • 872 posts
  • Corona SDK

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

 

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?



[TOPIC: post.html]
#21

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

Basically, its like store.purchase() is called for you.

 

Rob



[TOPIC: post.html]
#22

d.mach

[GLOBAL: userInfoPane.html]
d.mach
  • Contributor

  • 872 posts
  • Corona SDK

The thing which got me confused is: normally you have to do store.init() first before the store.purchase is working.

 

Thx!



[TOPIC: post.html]
#23

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 26,053 posts
  • Enterprise

I don't know the full underlying mechanics but yes, you have to call store.init(). This will set up a delegate on the native side that in addition to processing your store.purchase() and store.restore() calls, it listens for transactions not originated in your app and sends them to your transaction listener function just as if the user had purchased it from inside your app.

 

Basically, if your app can take a purchased event, enable it, you shouldn't need to do anything more than call store.init(), set up your transaction handling function and then sit back and process transactions as they happen.

 

Rob



[TOPIC: post.html]
#24

d.mach

[GLOBAL: userInfoPane.html]
d.mach
  • Contributor

  • 872 posts
  • Corona SDK

The new update for the app is now available. We have included 2 new InApp products, but on the App Store it only lists one InApp-purchase... the one which was in the version before the update.

 

And the new InApp options (https://developer.apple.com/app-store/promoting-in-app-purchases/) are NOT shown and not visible in the store also!

 

Has anybody here implemented the new InApp purchases in an app or game which can be promoted in the App Store? What did we miss?

 

And when adding new InApp-purchases to exisiting ones with an app update is there something to think about? Maybe we missed something here!?

 

Thx for your help!
 



[TOPIC: post.html]
#25

d.mach

[GLOBAL: userInfoPane.html]
d.mach
  • Contributor

  • 872 posts
  • Corona SDK

With a new game we have uploaded a binary for testing and when accessing the App Store Promotion part in itunes connect we get the following message in itunes connect:

 

These in-app purchases can’t be promoted on the App Store because your latest app binary doesn’t include the SKPaymentTransactionObserver method.

 

Does anybody know if this will disappear once the binary is submitted for review? Is this message normal? We are accessing the store right from the beginning in the game and we don't know what else there is to do!?




[topic_controls]
Page 1 of 2 1 2
 
[/topic_controls]