[SOLVED] In-App Purchase - not passing account credentials 4.22 / iOS 12.x

Hi all,

I’m struggling to get my in-app purchases working and suspect a bug.

I’m able to successfully query and retrieve info for multiple in-app purchases that I’ve set up on App Store Connect, however when it comes to clicking BUY and having the Make In-App Purchase node do it’s thing I’m getting nowhere.

It appears, based on Xcode console inspection, that the iOS subsystem nodes in UE4 aren’t working with the device’s credentials correctly.
I’ll post some console messages in a comment below. But the TLDR is: it doesn’t even raise a prompt to sign in when you fire the Make Purchase node. It should as far as I understand it.

iOS devices tested are all 12.2 or higher iPad Pro, iPad Air, iPhone. UE4.22 is where I’m building. BP only project (but I have tried building Unreal Match 3 and get same result).

I’m building a developer build and transferring to iPad via IPP tool. I have also uploaded a distro build to testflight which also did nothing.

Going nuts. Feel like crying.

Here’s the console stuff I was looking at. I’m a bit out of my depth, but trying hard to do all the right diagnostics.


default    19:53:08.482950 +0800    itunesstored    ISStoreURLOperation: [CEAF55A6] Attempting to determine the account identifier for (null).
default    19:53:08.518881 +0800    assertiond    -[BKAssertion dealloc] - <0x100f07ec0>
default    19:53:08.519564 +0800    itunesstored    ISStoreURLOperation: [4335E10D] Attempting to determine the account identifier for https://sandbox.itunes.apple.com/WebObjects/MZStore.woa/wa/fetchSoftwareAddOns.
default    19:53:08.520015 +0800    itunesstored    ISStoreURLOperation: [7B64E177] Attempting to determine the account identifier for https://sandbox.itunes.apple.com/WebObjects/MZStore.woa/wa/fetchSoftwareAddOns.
default    19:53:08.522444 +0800    accountsd    "Daemon save called for account <private>: username=(null), client=<private> (170), verify=0"
default    19:53:08.522490 +0800    accountsd    "Account type <private> does support multiples."
default    19:53:08.522542 +0800    accountsd    iTunesAccountsNotificationPlugin: [04CA77A1] Determining whether or not we can save <SSAccount: 0x143e80c10>: Local Account | storefront = 143460-27,30>. client = itunesstored
default    19:53:08.522589 +0800    accountsd    "Updating existing account: (null)"
default    19:53:08.523610 +0800    accountsd    "The plugin for account <private> does not implement credentialForAccount"
default    19:53:08.523868 +0800    accountsd    "No plugin provides credentials for account <private>. Falling back to legacy behavior."
default    19:53:08.524003 +0800    accountsd    Nil qualifiedUsername for account <private>. Can't look up credential
error    19:53:08.524068 +0800    accountsd    "Error returned from daemon: Error Domain=com.apple.accounts Code=11"
default    19:53:08.524996 +0800    accountsd    "The plugin for account <private> does not implement credentialForAccount"
default    19:53:08.525175 +0800    accountsd    "No plugin provides credentials for account <private>. Falling back to legacy behavior."
default    19:53:08.525308 +0800    accountsd    Nil qualifiedUsername for account <private>. Can't look up credential
error    19:53:08.525381 +0800    accountsd    "Error returned from daemon: Error Domain=com.apple.accounts Code=11"
default    19:53:08.525465 +0800    accountsd    "Account <private> is being modified. Diff not available."
default    19:53:08.526443 +0800    accountsd    Notifying interested clients that account <private> WILL change (old account: <private>)
default    19:53:08.526489 +0800    accountsd    Calling plugin '<private>' for WILL change...



Looks like the root cause of this was (possibly) Blueprint misconfig. I haven’t confirmed why it was occurring, but I have managed to get past it. More discussion and detail over in this related thread: Is anyone sucessfully using BP Make In-App Purchase node on iOS 12.x