Are you currently able to build an iOS app with working in-app purchases on iOS 12.x?
I’m struggling. Please help.
The Make In-App Purchase node is failing for me, and I simply can’t work out why. I have carefully followed many suggestions and documentation on this process but I’m still snagged here.
Here’s my rundown.
UE4.22 > Remote build on OS X >** Xcode 10.3** > test devices** iOS 12.2 / 12.4**
Provisioning: okay. Both dev / distro provisions and certs are working as expected. Test Flight: okay - sucesfully uploading app to test flight. Installs to test devices as expected. In-App Purchases: configured in Appstore Connect. Status is Ready to submit. Agreements and banking are all in order
iOSEngine.ini: [OnlineSubsystem] DefaultPlatformService=IOS [OnlineSubsystemIOS.Store] bSupportsInAppPurchasing=true bUseStoreV2=false
Read In App Purchase Information Node: Working as expected. App store query returns an array of In App Purchase Info structures containing each of the IAPs I have configured via App Store Connect.
** At this stage, based on all the above, I believe my app / project / appstore connect configuration is all okay. If it were not, I assume the read in app purchase information would be failing. **
Make an In App Purchase node: returns Completion Status: Unknown. Neither Success nor Failure exec outputs fire. When repeatedly fired (spam the buy button) sometimes it will return a failed completion status. Appstore credentials don’t appear to be passed to the store: See other post In-App Purchase - not passing account credentials 4.22 / iOS 12.x for console dump.
Update on this. I’ve just successfully run a test account purchase through in a dev build of Unreal Match 3. This wasn’t working for me this morning, then spontaneously it started working a matter of 30 minutes later. I have no explanation… but this is good news. It would not prompt for account sign in at all then suddenly it would. It may be something to do with a freshly created In App Purchase item in Appstore Connect, but this is just a gut feel guess. I’ll see how consistent this success is and report back.
Ok, I’ve got this working in three projects now: a blank test project; a dev packaged build of Unreal Match 3 and my own project.
Some notes:
The live App Store version of Unreal Engine’s Unreal Match 3 fails to read store In App Purchase Info - there’s definitely a bug somewhere - my money is on changes at the App Store side. (This is still occurring for me on 9/9/19)
The learning project download of Unreal Match 3 can be successfully built and tested with IAPs (as long as you go through the prerequisite steps in App Store Connect correctly)
This is a C++ and Blueprint project
I recreated the In App Purchase in my App Store Connect account under a dummy test app and used my own developer provisioning. This was all set in Project settings
A blank project can be quickly configured to Read and Make In App Purchases (again, as long as you have the Apple side sorted).
In my case: 100% blueprint. (with Config/iOS folder copied from Unreal Match 3 project - you should be able to just create these .ini files from scratch I guess)
The documentation seems to work fin if you work through it carefully. But you DO need to add “bUseStoreV2=false” to iOSEngine.ini right under “bSupportsInAppPurchasing=True”. Easy and quick to grab the Config/iOS folder from Unreal Match 3 if you aren’t sure. iOSGame.ini can probably be deleted though.
As to why this has been a hassle? Stuffed if I know. I’m over trying to figure out the root cause.
My advice? Start a blank project, get that working as a test case, then figure out your real project. Download and test the Unreal Match 3 project as well, you should be able to get that rolling with the appropriate Apple App Store Connect set up completed.
I got asked by a thread subscriber to post my working blueprints.
Here’s what I used for my blank test project in UE4.22 - all stolen and modified from the Unreal Match 3 project, but essentially identical to my own blueprints based on the documentation. This is all in a single UMG Widget graph loaded on level begin play. I bound a couple of text areas to the price and confirmation text vars to watch them.
Hi, i was follow the config and adding the part of SubSystem inside of IOSEngine.ini and AndroidEngine.ini but allways have this error:
LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy::TriggerQuery - In App Purchases are not supported by Online Subsystem
LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy::TriggerQuery - In App Purchases are not supported by Online Subsystem
I dont know why not detect that.
If change to V2, always when read the Product ID the data is not correct, for example say: