Android에서 앱 내 구매 사용법

앱 내 구매를 통해 Android 게임에 부가 유료 콘텐츠를 제공하는 법입니다.

Choose your operating system:

Windows

macOS

Linux

환경설정

  1. Google Play 에서 앱 내 구매 구성법:

    Google Play 의 id 는 모두 소문자여야 하며, 블루프린트 구성 편의를 위해 iOS 와 Android 양쪽의 ID 가 일치되도록 하는 것이 좋습니다.

    image alt text

  2. 사용하시는 ID 와 아울러 아이템이 소모성인지 아닌지도 같이 기록해 둡니다.

  3. 블루프린트 프로젝트라면 별다른 작업은 필요 없습니다. 하지만 코드 프로젝트의 경우 온라인 서브시스템을 사용하도록 프로젝트 구성을 해 놓지 않은 경우, 프로젝트의 Build.cs 파일에 다음 블록을 추가합니다:

    if (Target.Platform == UnrealTargetPlatform.Android)
    {
        PrivateDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "OnlineSubsystem" });
        DynamicallyLoadedModuleNames.Add("OnlineSubsystemGooglePlay");
    }
  4. 프로젝트 세팅 > 플랫폼 > Android 에서 Advanced APKPackaging 섹션을 찾습니다.

  5. ExtraPermissions 에 "com.android.vending.BILLING" 라는 엘리먼트를 추가합니다.

    image alt text

  6. [ProjectName]/Config/Android/AndroidEngine.ini 파일을 편집합니다:

    [OnlineSubsystem]
    DefaultPlatformService=GooglePlay
    
    [OnlineSubsystemGooglePlay.Store]
    bSupportsInAppPurchasing=True

구매 정보 읽기

image alt text

Read In-App Purchase Information 블루프린트 노드( 또는 그에 해당하는 C++ 함수 호출)를 통해 앱 내 구매 정보를 읽을 수 있습니다. 대부분의 온라인 서브시스템 함수와 마찬가지로, Player Controller 뿐만 아니라 제품 식별자도 입력으로 받습니다. 참고로 아래 Make In-App Purchase 는 하나의 식별자를 받는 반면, Read 는 배열 정보 처리가 가능합니다. 이 함수는 In App Purchase 구조체의 배열을 반환하고, 배열의 각 요소를 분리하여 이름, 설명, 가격 등 UI 에 표시하거나 게임플레이 로직에 사용할 데이터를 구합니다.

구매 완료

image alt text

앱 내 구매를 위해서는, Make an In-App Purchase 블루프린트 노드(, 또는 그에 해당하는 C++ 함수)를 사용합니다. Player Controller 뿐만 아니라 Product Request 구조체도 입력으로 받습니다. Product Request 는 단순히 iTunes Connect 나 Google Play Developer 콘솔에서의 제품 식별자(, 여기서는 match3theme_night)이며, 그 제품이 소모성인지 아닌지를 나타냅니다.

Make an In-App Purchase 노드는 latent (잠복성)이라, 구매의 성공 또는 실패 여부에 따라 게임플레이 동작이 갈리는 경우 두 개의 실행 핀을 사용해야 합니다. 온라인 서비스에서 응답을 받은 이후에만 실행될 것입니다. 이 노드는 (성공, 실패, 복구 등의) 구매 완료 상태와 In App Purchase Information 구조체의 자세한 내용도 같이 반환합니다.

이 함수는 잠복성이 아닌 (블루프린트 노드에 시계가 표시되지 않는) 버전이 있습니다. 그 노드의 실행 핀은 온라인 서비스에서의 응답을 기다리지 않으므로, 보통 잠복성 버전을 사용하게 됩니다.

테스팅

Android에서의 테스트는, Google Play 에 패키징된 APK 를 업로드하고, 올바른 테스팅 프로파일 구성도 해 줘야 합니다. 커스텀 키 스토어도 필요합니다.

유용한 링크

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기