First, here is the setup for testing this:
From what I’ve seen, this is correct.
Billing permissions are setup with Google Play via the manifest, and the com.ihmj.noads IAP product ID is Active in the Google Play developer console and has been for quite a while.
Google Play services such as Leaderboards and Achievements work just fine. We even have a beta build with testers. So everything on that front is all good to go.
So…
When trying this setup in the engine, it returns the strings “node executed” and “fail”, as expected.
When trying this setup on an Android device in a development build, it again returns the strings “node executed” and “fail”, as expected.
When in a distribution build, however, when Google Play services are all working and everything is dandy, pressing the button that triggers the IAP does nothing at all. It doesn’t even print the “node executed” string. Literally nothing happens. The other services still work just fine though.
This has been tested with the same results on the newest build, 4.7.6, and the previous build we were using, 4.6.1.
Is there some additional info needed in the manifest or DefaultEngine.ini, or something like that? And just to further clarify beyond what is really necessary, yes, I do have the billing permission unblocked in the manifest file.
What I think miiight be something, is that I had to add the bSupportsInAppPurchasing=True line under the [OnlineSubsystemIOS.Store] thing in the DefaultEngine.ini, but never saw anyone say anything about adding something similar for Android in that file. Is there some declaration needed there for Android?
And here’s some extra info that should really be interesting:
When testing the billing request with Google’s static response product IDs, it still doesn’t do anything. I used android.test.purchased, as instructed here:
Is it just me, or does this engine not support IAPs on Android?
Please, please, please prove me wrong here!