Is Game Center login required for using Make an In-App Purchase v2 on iOS?

We are seeing a crash at line 41 in InAppPurchaseCallbackProxy2.cpp because PlayerController->GetLocalPlayer()->GetUniqueNetIdFromCachedControllerId() returns and invalid id.

PurchasingPlayer = (*PlayerController->GetLocalPlayer()->GetUniqueNetIdFromCachedControllerId()).AsShared();

Once I login into Game Center, the NetId becomes valid and I can complete in app purchases. I am able to complete in app purchases on Android without logging into Google Play Games.

Testing on iPhone 8 and iPhone 6s+.
100% repro.

2 Likes

Have you solved it? I am having the same problem.

1 Like

Because of this specification, we are currently unable to introduce in-app purchases due to rejection by Apple’s review.

1 Like

Our solution : In AppStoreConnect, check “Agreements, Tax and Banking” and setup the “Paid Apps” agreement : P

P.S. Sorry for the salty reply a year back…

I’m seeing a similar issue on UE 5.3.1.

Does In-App purchases work for anyone on UE5.3 on iOS? I haven’t been able to get it working due to this error:

UInAppPurchaseCallbackProxy::Trigger - Invalid player UniqueNetId

This is happening because in the InAppPurchaseCheckoutCallbackProxy::TriggerCheckout() function, this line is failing on IsValid() check:

if( FUniqueNetIdRepl PurchasingPlayer = PlayerController->GetLocalPlayer()->GetUniqueNetIdFromCachedControllerId(); PurchasingPlayer.IsValid())

I have confirmed that my Paid App Agreement is valid and active, that doesn’t seem to be the issue.

Not using Game Center and that option is disabled in the certificate.

Everything works fine in a UE 4.27 build so I know the purchases are setup correctly.

@gf11speed, did you find any solution for this? My IAP was also not working on 5.3. After searching, I found that the UniqueNetID is invalid.