App rejected because it can't connect for an In-App purchase over IPv6 network

Our App just got rejected by Apple, and in the details it says it can’t connect for an In-App purchase. Reviewer also mentioned this

Anybody else is having this problem ? Engine version is 4.12, and release notes said 4.12 support IPv6 on iOS.

Please help, it’s the only thorn preventing us from release this game on the Appstore.

Here’s a link to answerhub, but no one replied.
https://answers.unrealengine.com/questions/437321/ios-in-app-purchase-over-ipv6.html

Thank you!

We also have this problem, and are also using 4.12

Really weird… My game passed App Review two days ago and everything was OK…

Hey TheJamsh,

Polytopey replied in his AnswerHub stating that it wasn’t a problem with UE4, that it was network settings they needed to fix on their end. I also checked with our Platform Developers and verified that IPv6 is in place as of 4.12 for iOS and it’s working correctly. If you’re still running into issues, you may want to submit an AnswerHub for additional assistance.

Thanks!

Hey guys, just went through this exact situation with our upcoming India softlaunch. Thought it was odd, considering our project is Blueprint-only.

So I followed IPv6 test instructions provided here:

https://developer.apple.com/library/content/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html

by Apple. If you scroll down a bit, you’ll see a “Test for IPv6 DNS64/NAT64 Compatibility Regularly” section. To my surprise, our game’s In-App Purchases worked just fine. Airplane mode on, all other networks forgotten, only connected to the test IPv6 network, with visible IPv6 address in the network settings.

So I resubmitted with a very detailed description in the Review Notes section about how I tested and confirmed functionality per their own instructions. I also added a “Waiting for In-App Purchase Response” window in our game whenever an IAP command is sent, because I realized that if it takes a bit to respond and the user presses it again, it sends back a failure result in UE4. I let them know in the Review Notes about this addition and why I think they previously saw the error.

They just approved it for release after they reviewed that submission. I had also prepared a video of myself setting up the test and successfully running, just in case they rejected it again.

Hope this helps. I certainly understand the frustration and confusion.

Is your game completely offline, or do you have a backend server to verify purchases/store player data? If you have a server, you must check if your server is reachable through a pure IPV6 connection. A bunch of cheap hosts don’t automatically configure IPV6 DNS information.