I am developing a mobile app and will release both IOS and Android.
So I’m in the process of testing in-app purchases, but on IOS it works fine if I add what I find in other answers.
Build.cs: ZeroBin.net =
IOSEngine.ini: ZeroBin.net =
But when tested on Android, neither loading nor purchasing the item responds.
The part I confirmed is …
・ Add “com.android.vending.BILLING” to the additional authority
・ Enter key store information
・ Enter the game application ID and license key
・ Check to enable Google play support
・ In androidEngine.ini
[OnlineSubsystem]
DefaultPlatformService = GooglePlay
[OnlineSubsystemGooglePlay.Store]
bSupportsInAppPurchasing = True
Add
・ This has been added to Build.cs
if (Target.Platform == UnrealTargetPlatform.Android)
{
PrivateDependencyModuleNames.AddRange (new string ] {“Core”, “CoreUObject”, “Engine”, “OnlineSubsystem”});
DynamicallyLoadedModuleNames.Add (“OnlineSubsystemGooglePlay”);
}
・In Gooleplay console, the status of the game service is “Ready to publish”
・Managed items are registered with the same ID as AppStoreConnent and all are valid.
・For the actual machine test, the closed alpha version will be released and the opt-in URL of the internal test version will appear. Next, I added a test user, opened the opt-in URL from the actual machine, installed it, and tested it.
・ The tester’s email address has been added to the license test in the account details.
What’s wrong?
I think there is a problem with the Build.cs or googleplayconsole settings.
I don’t think the BP purchase node is wrong as it is working properly on IOS.
I would like someone who understands the problem to help me. It’s very troubled. Thank you.
< Build.cs>
// Fill out your copyright notice in the Description page of Project Settings.
using UnrealBuildTool;
public class BlankTest : ModuleRules
{
public BlankTest(ReadOnlyTargetRules Target) : base(Target)
{
PrivateIncludePaths.Add(“ShooterGameLoadingScreen/Private”);
PublicDefinitions.Add(“AES_KEY=[Pww16426fsGTYsfRs11Q]”);
DynamicallyLoadedModuleNames.Add(“OnlineSubsystemNull”);
if (Target.Platform == UnrealTargetPlatform.IOS)
{
PrivateDependencyModuleNames.AddRange(new string] { “Core”, “CoreUObject”, “Engine”, “OnlineSubsystem” });
DynamicallyLoadedModuleNames.AddRange(new string] { “OnlineSubsystemIOS”, “IOSAdvertising” });
}
else if (Target.Platform == UnrealTargetPlatform.Android)
{
PrivateDependencyModuleNames.AddRange(new string] { “Core”, “CoreUObject”, “Engine”, “OnlineSubsystem” });
DynamicallyLoadedModuleNames.Add(“AndroidAdvertising”);
}
if (Target.Platform == UnrealTargetPlatform.Android)
{
PrivateDependencyModuleNames.AddRange(new string] { “Core”, “CoreUObject”, “Engine”, “OnlineSubsystem” });
DynamicallyLoadedModuleNames.Add(“OnlineSubsystemGooglePlay”);
}
PrivateDependencyModuleNames.Add(“OnlineSubsystem”);
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string] { “Core”, “CoreUObject”, “Engine”, “InputCore” });
PrivateDependencyModuleNames.AddRange(new string] { });
// Uncomment if you are using Slate UI
// PrivateDependencyModuleNames.AddRange(new string] { “Slate”, “SlateCore” });
// Uncomment if you are using online features
// PrivateDependencyModuleNames.Add(“OnlineSubsystem”);
// To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true
}
}