IAP-Enabled games get rejected from the iOS Store in 4.12

We submitted our game to iOS Store this week expecting it to pass with flying colours, but it keeps being rejected because of In-App Purchases not working over IPv6 networks. We followed all the instructions as provided here.

There is already an existing post both on Answerhub and the Forums on this issue, so far with no official response.

Seems like this issue isn’t isolated to just us, and we don’t really have a way of fixing it. Any chance for some official feedback on this issue?

Our feedback from the App Store, just for proof:

91a099cff0d60c6885bd56cd961a7cb2841b7822.jpeg

Hmm thats a worry, it is now (since July 1st a requirement that your app can run on iPV6 only networks). Have you tried to test your app and see what logging you get? - not sure if I have seen this mentioned in the 4.13 notes. Had kind of assumed UE4 was already IPv6 compliant.

BUMP

This is still a problem for us, no official word so far and we’re pretty sure we’ve done nothing wrong :confused:

Hi TheJamsh,

We actually uploaded a version of Unreal Match 3 on 4.12, which has IAP enabled. Samantha responded to the other thread saying that she checked w/Platform Team and IPv6 support is in as well ( App rejected because it can't connect for an In-App purchase over IPv6 network - Mobile - Epic Developer Community Forums ), so it may be best to log an AnswerHub post with your particular issue. Thanks! :smiley:

We’re still having problems with this, still no response on the Answerhub thread in question so posting here.

Our full version of the game is also being rejected now for the same reason, despite having already been on the Store before and having no in-app purchases. Apparently this could be something to do with IOSEngine.ini, but surely there’s no possible way for us to disable IPV6 anyway?

Apparently - this config file was added to our builds for this submission only. We’re not disabling IPv6 anywhere are we? I don’t understand why this isn’t working…



[/Script/BuildSettings.BuildSettings]
bCompileAPEX=False
bCompileBox2D=False
bCompileICU=True
bCompileSimplygon=False
bCompileLeanAndMeanUE=True
bIncludeADO=True
bCompileRecast=True
bCompileSpeedTree=False
bCompilePhysXVehicle=False
bCompileFreeType=True
bCompileForSize=True
bCompileCEF3=False

[Audio]
AudioDeviceModuleName=IOSAudio
; Defines a platform-specific volume headroom (in dB) for audio to provide better platform consistency with respect to volume levels.
PlatformHeadroomDB=0

[OnlineSubsystem]
DefaultPlatformService=IOS

[Advertising]
DefaultProviderName=IOSAdvertising

[SlateRenderer]
NumPreallocatedVertices=200


Our previous submission for our full version of the game didn’t have this problem and didn’t include this config file, which surely means we’re already supporting IPv6? So why would adding this file cause it to be rejected?

We have to have this file for the Lite version (with ads / in app purchases) - so deleting it isn’t really an option, there must be something somewhere that’s turning it off :confused:

It looks like you are missing this setting:


[OnlineSubsystemIOS.Store]
bSupportsInAppPurchasing=True

Hi Chris,

We’ve tried that, we also had it in DefaultEngine.ini. Here’s our updated settings:



[/Script/BuildSettings.BuildSettings]
bCompileAPEX=False
bCompileBox2D=False
bCompileICU=True
bCompileSimplygon=False
bCompileLeanAndMeanUE=True
bIncludeADO=True
bCompileRecast=True
bCompileSpeedTree=False
bCompilePhysXVehicle=False
bCompileFreeType=True
bCompileForSize=True
bCompileCEF3=False

[Audio]
AudioDeviceModuleName=IOSAudio
; Defines a platform-specific volume headroom (in dB) for audio to provide better platform consistency with respect to volume levels.
PlatformHeadroomDB=0

[OnlineSubsystem]
DefaultPlatformService=IOS

[Advertising]
DefaultProviderName=IOSAdvertising

[OnlineSubsystemIOS.Store]
bSupportsInAppPurchasing=True
IsAllowedToMakePurchases=True

[SlateRenderer]
NumPreallocatedVertices=200


My only other suggestion is to make sure you have this in your project’s build.cs:


if (Target.Platform == UnrealTargetPlatform.IOS)
{
    PrivateDependencyModuleNames.AddRange(new string] { "Core", "CoreUObject", "Engine", "OnlineSubsystem" });
    DynamicallyLoadedModuleNames.Add("OnlineSubsystemIOS");
}

If this isn’t it, I’d recommend creating your own AnswerHub post for this issue.

Yeh we’ve got that, been using App Store functionality for ages which all works fine (Game Center etc).

Made an answerhub post here: IAP-Enabled Apps Get Rejected from iOS Store - Mobile - Unreal Engine Forums

So according to Answerhub, this is indeed an engine issue it seems.

Not entirely sure why some apps are getting through and others aren’t in that case, since I’m assuming you didn’t make these changes @gameDNAStudio